在 Ably 上,我没有收到消息,我该如何调试?
Posted
技术标签:
【中文标题】在 Ably 上,我没有收到消息,我该如何调试?【英文标题】:On Ably, I'm not receiving messages, how do I debug that? 【发布时间】:2018-09-15 13:30:04 【问题描述】:我正在使用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,以便我们的用户可以更轻松地找到它)
【问题讨论】:
虽然想写一个自我回答的问题来与他人分享信息是值得称赞的,但该问题仍然必须满足与此处的任何其他问题相同的质量标准。这个没有。如果您以外的其他人发布了它,它会因为过于宽泛而被关闭。请edit 提高问题的质量。 (顺便说一句,您在回答中提供的所有非现场链接也会遇到问题;您现在可能也想处理这些问题。) 感谢您的反馈,我将编辑问题@KenWhite 【参考方案1】:这是我发现的一般调试过程:
首先,确保您发布的频道与您订阅的频道相同。 (Ably 频道名称区分大小写——体育与体育是不同的频道)。
其次,确保您在任何地方都使用同一个应用(例如,确保您不是使用沙盒应用中的 api 密钥发布,而是使用生产应用中的 api 密钥进行订阅)
第三,您需要找出问题出在发布方还是订阅方。打开dev console,附加到您要发布的频道,然后尝试发布。您是否看到该消息出现在那里(但仍然没有出现在您的订阅设备上)?如果是,则问题出在订阅方。如果不是,则问题出在发布方面。
调试发布问题
当你调用channel#publish时,你可以pass a callback (or equivalent - select the language you're using from the language bar),如果发布失败会告诉你原因。
调试订阅问题
查看connection state, make sure you're connected to Ably
查看channel state, make sure you're attached to the channel
确保您拥有added a subscribe listener。如果您为特定事件名称添加了侦听器,请确保您使用完全相同的事件名称进行发布
【讨论】:
以上是关于在 Ably 上,我没有收到消息,我该如何调试?的主要内容,如果未能解决你的问题,请参考以下文章
如果我在 Xbox UWP 应用上收到激活错误并且错误消息中没有任何有用的信息,我该怎么办?