我编写了一个简单的聊天,使用Twilio消息传递示例作为起点。这样做的目的是在不同的客户端和管理员之间建立私人渠道。每个客户端将有一个单独的管理私有通道。管理员可以选择打开/订阅哪个频道来与特定客户端聊天。
我现在面临的问题是我不能取消订阅以前订阅的频道。
下面是以admin、client (test1)和client (Test2)的身份登录的链接:http://test.verbery.com/
复制这一问题的步骤:
技术细节:为了订阅一个频道,我使用了一个事件"onMessageAdded“来收听该频道的传入消息:
// Listen for new messages sent to the channel
personalChannel.on('messageAdded', function(message) {
printMessage(message.author, message.body);
});为了取消订阅我尝试过的unbind('onMessageAdded')和off('onMessageAdded'),但它不起作用,js控制台说:取消绑定(或关闭)不是一个函数。
有什么办法取消订阅频道吗?
发布于 2016-03-29 08:01:18
两位开发人员在这里传道。
Bob是对的,您需要调用leave() 在频道上才能正确地离开它。
personalChannel.leave();如果您希望保持与频道的连接,但停止从传入事件中侦听,则可以解除侦听器的绑定。实际上,您可以使用removeListener而不是off或unbind来实现这一点。这是在Node.js EventEmitter API之后。
personalChannel.removeListener("messageAdded");如果这有帮助的话请告诉我。
发布于 2017-09-15 09:40:18
如果不想离开或取消订阅通道,可以这样做以删除通道中的所有事件:
activeChannel.removeAllListeners();当我在频道间切换时,我就这样做。
发布于 2016-03-29 08:00:02
personalChannel.on('memberLeft', function(member) {
printMessage(member.identity + 'has left the channel.');
});像这样吗?
https://stackoverflow.com/questions/36276722
复制相似问题