我正在使用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 pusher:状态从CONNECTING改为CONNECTED
01-03 15:47:04.709 pusher:订阅
在发布" test_event"时,我的onEvent回调没有被触发的原因是什么?在" test_chan"?
答案 0 :(得分:0)
您必须添加'客户端'在您的eventName之前使用' -
'
Channel channel = mPusher.subscribe("test-chan",this, "client-test-event");
将ChannelEventListener与您的活动
一起使用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);
}
}
尝试这样实现它会起作用;并告诉我它是否会对你有所帮助:)
答案 1 :(得分:0)
// 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();