【问题标题】:Android Pusher not connecting to Private ChannelsAndroid Pusher 未连接到私人频道
【发布时间】:2016-11-06 02:06:49
【问题描述】:

我正在尝试在我的 Android 应用程序中实现推送聊天,我能够与推送者连接,得到的响应为 CONNECTED。但无法连接到私人频道(本地服务器)。任何人都可以帮助解决这个问题。 添加下面的代码。

提前致谢

final HttpAuthorizer authorizer = new HttpAuthorizer(myurl);
    authorizer.setHeaders(getMapAuthorizationHeaders());
    PusherOptions options = new PusherOptions().setAuthorizer(authorizer);
    final Pusher pusher = new Pusher("pusher_key", options);

    pusher.connect(new com.pusher.client.connection.ConnectionEventListener() {
        @Override
        public void onConnectionStateChange(ConnectionStateChange connectionStateChange) {

            Log.e("connectionStateChange" , connectionStateChange.getCurrentState().toString());

            if (connectionStateChange.getCurrentState() == ConnectionState.CONNECTED) {

                SOCKET_ID = pusher.getConnection().getSocketId();
                Log.e("SOCKET_ID" , ""+SOCKET_ID);


                Channel channel = pusher.subscribePrivate(PUSH_CHANNEL, new PrivateChannelEventListener() {
                    @Override
                    public void onAuthenticationFailure(String s, Exception e) {
                        Log.e("PUSHER", "Channel subscription authorization failed");
                    }

                    @Override
                    public void onSubscriptionSucceeded(String s) {
                        Log.e("PUSHER", "Channel subscription authorization succeeded");
                    }

                    @Override
                    public void onEvent(String s, String s2, String s3) {
                        Log.e("PUSHER", "An event with name " + s2 + " was delivered!!");
                    }
                }, "my-event");
            }
        }

        @Override
        public void onError(String s, String s1, Exception e) {

        }
    });



public static HashMap<String, String> getMapAuthorizationHeaders() {
try {
    HashMap<String, String> authHeader = new HashMap<>();
    authHeader.put("HeaderKey1", "HeaderValue1");
    authHeader.put("HeaderKey2", "HeaderValue2");
    return authHeader;

} catch (Exception e) {
    return null;
}

}

【问题讨论】:

  • 您好,我也遇到了同样的问题,请问您有解决方案吗?

标签: android pusher


【解决方案1】:

我可以假设您将"pusher_key" 放在此处,出于安全目的,您只是在此处添加了此内容,并且在您的应用程序中您实际上正在使用您的密钥?

除此之外,您在哪里定义 PUSH_CHANNEL 为:pusher.subscribePrivate(PUSH_CHANNEL,

【讨论】:

  • 我分别使用原始密钥和real_channel_name
  • 您的应用在哪个集群中?如果不是默认的(MT1),则需要指定。
  • 我也遇到同样的错误。连接工作正常,但 subscribePrivate 没有调用。
  • 你好,我也有同样的问题,请问你解决了吗?
猜你喜欢
  • 2014-07-15
  • 2023-03-11
  • 2016-02-24
  • 2019-06-04
  • 2020-04-14
  • 2017-05-12
  • 2017-12-09
  • 2021-06-17
  • 2017-11-27
相关资源
最近更新 更多