在 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 应用上收到激活错误并且错误消息中没有任何有用的信息,我该怎么办?

发送到 Ably 和从 Ably 接收的消息是不是使用 TLS 安全发送?

如何使用 gdb 进行调试?

应用程序甚至在启动之前就崩溃了。我该如何调试呢? [关闭]

调试错误 - 向量下标超出范围 - PCL

如何调试 OpenOffice 函数宏?