首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twilio IP消息,如何从信道中取消订阅

Twilio IP消息,如何从信道中取消订阅
EN

Stack Overflow用户
提问于 2016-03-29 06:12:12
回答 3查看 2.4K关注 0票数 4

我编写了一个简单的聊天,使用Twilio消息传递示例作为起点。这样做的目的是在不同的客户端和管理员之间建立私人渠道。每个客户端将有一个单独的管理私有通道。管理员可以选择打开/订阅哪个频道来与特定客户端聊天。

我现在面临的问题是我不能取消订阅以前订阅的频道。

下面是以admin、client (test1)和client (Test2)的身份登录的链接:http://test.verbery.com/

复制这一问题的步骤:

  1. 点击"Admin (admin1)“作为管理员登录
  2. 在新打开的管理聊天页面上,单击左侧面板上的"test1@qwe.com“频道,订阅频道并接收该频道的消息。
  3. 在主页上单击"Client (test1)“以客户端身份登录,并将通道test1@qwe.com作为客户端加入。
  4. 将消息从admin发送到client (test1),从client (test1)发送到admin。
  5. 在管理聊天上,单击通道test2@qwe.com订阅这个新频道,并与另一个客户端(test2)聊天;以客户端登录(Test2)并与admin聊天。
  6. 现在的问题是:您仍然在接收来自test1@qwe.com的消息--尝试作为test1@qwe.com客户端发送消息。当您订阅test2@qwe.com频道时,您还没有取消对test1@qwe.com的订阅

技术细节:为了订阅一个频道,我使用了一个事件"onMessageAdded“来收听该频道的传入消息:

代码语言:javascript
复制
// Listen for new messages sent to the channel
personalChannel.on('messageAdded', function(message) {
    printMessage(message.author, message.body);
});

为了取消订阅我尝试过的unbind('onMessageAdded')off('onMessageAdded'),但它不起作用,js控制台说:取消绑定(或关闭)不是一个函数。

有什么办法取消订阅频道吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-29 08:01:18

两位开发人员在这里传道。

Bob是对的,您需要调用leave() 在频道上才能正确地离开它。

代码语言:javascript
复制
personalChannel.leave();

如果您希望保持与频道的连接,但停止从传入事件中侦听,则可以解除侦听器的绑定。实际上,您可以使用removeListener而不是offunbind来实现这一点。这是在Node.js EventEmitter API之后。

代码语言:javascript
复制
personalChannel.removeListener("messageAdded");

如果这有帮助的话请告诉我。

票数 9
EN

Stack Overflow用户

发布于 2017-09-15 09:40:18

如果不想离开或取消订阅通道,可以这样做以删除通道中的所有事件:

代码语言:javascript
复制
activeChannel.removeAllListeners();

当我在频道间切换时,我就这样做。

票数 15
EN

Stack Overflow用户

发布于 2016-03-29 08:00:02

代码语言:javascript
复制
personalChannel.on('memberLeft', function(member) {
  printMessage(member.identity + 'has left the channel.');
});

像这样吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36276722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档