我使用的是pusher-java-client 1.0.2 (与1.0.0相同)。android客户端订阅了一个频道,但不会触发事件(不调用onEvent)。而在我的js客户端中,事件确实会为相同的事件触发。
// Create a new Pusher instance
mPusher = new Pusher(Defines.PUSHER_APP_KEY);
mPusher.connect(new ConnectionEventListener() {
@Override
public void onConnectionStateChange(ConnectionStateChange change) {
Logger.i("pusher: State changed to " + change.getCurrentState() +
" from " + change.getPreviousState());
}
@Override
public void onError(String message, String code, Exception e) {
Logger.e("pusher: There was a problem connecting! msg:" + message);
}
}, ConnectionState.ALL);
Channel channel = mPusher.subscribe("test_chan", new ChannelEventListener() {
@Override
public void onSubscriptionSucceeded(String channel) {
Logger.i("pusher: subscribed");
}
@Override
public void onEvent(String channel, String event, String data) {
Logger.i("pusher: channel=" + channel + " event=" + " data=" + data);
}
}, "test_event");发送一些事件后的输出日志:
01-03 15:47:02.884推流器:状态从已断开改为正在连接
01-03 15:47:04.403推流器:状态从连接变为已连接
01-03 15:47:04.709推送:已订阅
在"test_chan“中发布"test_event”时,我的onEvent回调没有触发的原因可能是什么?
发布于 2016-01-20 14:11:09
您必须在eventName前添加'client‘并使用 '-’
Channel channel = mPusher.subscribe("test-chan",this, "client-test-event");将ChannelEventListener与Activity一起使用
public class YourActivity extends AppCompatActivity implements ChannelEventListener{
...
@Override
public void onSubscriptionSucceeded(String channel) {
Logger.i("pusher: subscribed");
}
@Override
public void onEvent(String channel, String event, String data) {
Logger.i("pusher: channel=" + channel + " event=" + " data=" + data);
}
}试着这样实现它会起作用;让我知道它是否会对你有帮助:)
发布于 2020-10-22 19:20:11
// Create a new Pusher instance
HttpAuthorizer authorizer = new HttpAuthorizer("https://example.com");
PusherOptions options = new PusherOptions().setCluster("mt1")
.setEncrypted(true)
.setWsPort(6001)
.setWssPort(6001)
.setAuthorizer(authorizer)
.setHost("example.com");
pusher = new Pusher("your-key", options);
//connect
pusher.connect(new ConnectionEventListener() {
@Override
public void onConnectionStateChange(ConnectionStateChange change) {
Log.i(TAG, "State changed from " + change.getPreviousState() +
" to " + change.getCurrentState());
}
@Override
public void onError(String message, String code, Exception e) {
Log.i(TAG, "There was a problem connecting! " +
"\ncode: " + code +
"\nmessage: " + message +
"\nException: " + e
);
}
}, ConnectionState.ALL);
// Subscribe to a channel
// Bind to listen for events
pusher.subscribe("channel-name").bind("event-name", new ChannelEventListener() {
@Override
public void onSubscriptionSucceeded(String channelName) {
Log.d(TAG, "onSubscriptionSucceeded: ");
}
@Override
public void onEvent(PusherEvent event) {
Log.d(TAG, "onEvent: data " + event.getData() + " user id " + event.getUserId());
}
});
// Reconnect, with all channel subscriptions and event bindings automatically recreated
pusher.connect();https://stackoverflow.com/questions/34577400
复制相似问题