-1

我正在使用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 上发布并自行回答一个常见的支持问题,以便我们的用户可以更轻松地找到它)

4

1 回答 1

1

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

首先,确保您发布的频道与您订阅的频道相同。(Ably频道名称区分大小写——体育与体育是不同的频道)。

其次,确保您在任何地方都使用相同的应用程序(例如,确保您不是使用沙盒应用程序中的 api 密钥发布,而是使用生产应用程序中的 api 密钥进行订阅)

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

调试发布问题

当您调用 channel#publish 时,您可以传递一个回调(或等效的 - 从语言栏中选择您正在使用的语言),如果发布失败,它将告诉您原因。

调试订阅问题

于 2018-04-05T16:26:37.747 回答