我使用Twilio IP消息传递示例编写了一个简单的聊天作为起点。我们的想法是在各种客户和管理员之间建立私人渠道。每个客户端都有一个单独的私人频道和管理员。管理员可以选择打开/订阅哪个频道与特定客户聊天。
我现在面临的问题是我无法取消订阅我之前订阅的频道。
以下是以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控制台说:unbind(或off)不是函数。
如何取消订阅频道?
提前致谢, 梅德
答案 0 :(得分:5)
如果您不想离开或取消订阅频道,可以执行此操作以删除频道中的所有活动:
activeChannel.removeAllListeners();
当我在频道之间切换时,我这样做。
答案 1 :(得分:4)
Twilio开发者传道者在这里。
Bob Sponge是对的,您需要致电leave()
on the channel才能正确离开。
personalChannel.leave();
如果您希望保持与频道的连接,但停止收听传入的事件,则可以取消绑定您的听众。您实际上是使用removeListener
而非off
或unbind
执行此操作。这遵循Node.js EventEmitter API。
personalChannel.removeListener("messageAdded");
让我知道这是否有帮助。
答案 2 :(得分:1)
personalChannel.on('memberLeft', function(member) {
printMessage(member.identity + 'has left the channel.');
});
这样的东西?