在 Ably 上,我收不到消息,该如何调试?

On Ably, I'm not receiving messages, how do I debug that?

我正在使用 Ably 在我的应用程序中实现 Pub/Sub,但我没有收到任何错误,但同时我没有收到任何已发布的消息。我不确定出了什么问题。帮助表示赞赏。

这是我的代码:

//publisher
var Ably = require('ably');
var apiKey = '';
var ably = new Ably.Realtime({key: apiKey});
var pubChannel = ably.channels.get("sports");
setInterval(function(){
    pubChannel.publish('update', {'Team': 'Man United'})
},1000)

//subscriber
var apiKey = '';
var ably = new Ably.Realtime({key: apiKey});
var subChannel = ably.channels.get("Sports");
subChannel.subscribe(function(msg){
    document.getElementById('text').innerHTML = JSON.stringify(msg.data);
})

(免责声明:我是 Ably 的开发者倡导者,并在 Stack Overflow 上发布和自我回答 commonly asked support question 以便我们的用户可以更轻松地找到它)

这是我发现的一般调试过程:

首先,确保您发布的频道与您订阅的频道相同。 (Ably 频道名称为 case-sensitive -- 体育频道与体育频道不同)。

其次,确保您在任何地方都使用相同的应用程序(例如,确保您不是使用 Sandbox 应用程序中的 api 密钥发布,而是使用 api 订阅来自您的 Production 应用程序的密钥)

第三,你需要找出问题出在发布端还是订阅端。打开 dev console,附加到您要发布的频道,然后尝试发布。您是否看到该消息出现在那里(但仍未出现在您的订阅设备上)?如果是,则问题出在订阅方。如果不是,问题出在出版方。

调试发布问题

当你调用channel#publish时,你可以pass a callback (or equivalent - select the language you're using from the language bar),如果发布失败会告诉你原因。

调试订阅问题