PubNub取消订阅是触发状态事件

PubNub unsubscribe isn't firing presence event

本文关键字:状态 事件 取消 PubNub      更新时间:2023-09-26

我为PubNub使用了最新的JavaScript API,并在管理界面中打开了存在。我在一个通道上运行两个客户端,像这样初始化和订阅:

pubnub = PUBNUB.init({
                publish_key   : 'xxx',
                subscribe_key : 'xxx',
                origin        : 'pubsub.pubnub.com',
                cipher_key    : 'xxx',
                ssl           : 'true',
                uuid          : uuid
            });
pubnub.subscribe({
                channel : CHANNEL,
                callback : function (message) {
                    $("#box").val($("#box").val() + message + "'r'n");
                },
                connect:    function () { console.log("Connected"); users(); },
                disconnect: function () { console.log("Disconnected"); },
                reconnect:  function () { console.log("Reconnected"); },
                error:      function () { console.log("Network Error"); },
                presence:   function (m) { console.log("Presence: " + m); }
            });

我像这样退订频道:

function unsubscribe() {
    pubnub.unsubscribe({
        channel:    CHANNEL
    });
    console.log("Unsubscribed");
};

当客户端加入通道时,我在所有订阅的客户端中看到join存在动作。当客户端超时时,我也会看到这些操作。

当我调用unsubscribe()时,日志行打印,并且该客户端没有收到任何在通道上发布的消息,但是没有收到其他仍然订阅的客户端收到的leave存在动作。我做错了什么?

奇怪的是,当我今天早上尝试订阅时,我得到了一个400 Invalid错误。当我进行调查时,PubNub管理界面告诉我没有与我的项目相关的密钥。

当我重新生成键时,我可以订阅-并且join和leave事件也按预期工作。我现在也得到了我期望从这里得到的响应。

奇怪,但修复!