当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 处理PubNub通道组限制

来源:互联网 收集:自由互联 发布时间:2021-06-16
语境: 我们正在使用PubNub进行实时通信的聊天应用程序. PubNub允许单个通道组中的2000个通道,之后您可以通过连接订阅最多10个组. 我们目前遇到的问题是我们的后端需要订阅每个现有的
语境:

我们正在使用PubNub进行实时通信的聊天应用程序.

PubNub允许单个通道组中的2000个通道,之后您可以通过连接订阅最多10个组.

我们目前遇到的问题是我们的后端需要订阅每个现有的通道(通过组),因为我们有一个对命令作出反应的Bot.

我们在node.js中处理这种连接,但是当向组添加通道时,当使用channel_group_add_channel添加超过2000个通道时,PubNub不会出错,而是返回200响应,并且只取出一个前一个通道(不确定是哪个).

因此,我需要检查组中当前通道的数量,以及它是否完整 – 启动一个新组.

问题:

我们可以同时进行多个用户注册,这意味着我们的机器人需要订阅新增的频道.

用于检查我们是否可以向当前组添加更多通道的伪代码.

addChannel(channel) {
    group.canAdd()
      .then(group.add(channel));
}

canAdd将使用channel_group_list_channels来检查该组当前有多少个频道.由于javascript的异步性质,我们有竞争条件:

>目前集团拥有1999年的渠道
>两次调用addChannel
>对channel_group_list_channels的两次调用都可以返回1999频道
>我们添加第一个频道(组现在是2000)
>我们添加第二个频道因为我们认为可以
>某些频道被推出群组(坏).

有没有办法在不降低性能的情况下解决这个问题?

请注意,即使像Redis这样的计数器也会遇到相同的问题,因为问题是并发性.

使用PubNub函数创建聊天机器人

真正的问题是关于在您的服务器上订阅数千个频道,但函数被提出作为解决方案,促使提问者提及聊天机器人的使用.

这个问题早该回答了……
PubNub Functions已经存在超过一年了,当您可以使用任何聊天机器人服务时,构建聊天机器人很简单:IBM Watson,Gupshup和so many others out there.

PubNub功能允许您点击消息并对其进行更改,编码,拒绝,重定向,无论您需要做什么,因为消息通过PubNub网络飞行而无需点击您的服务器.您只需在Function模块中实现一些代码,这些代码将基于不同的消息传递事件在PubNub网络中执行:发布,在线,您甚至可以设置endpoints.

有关创建聊天机器人的更多资源:

> Chatbots & PubNub
> Create a Chatbot in Under 10 Minutes Using PubNub Functions
> Build a Realtime Chatbot with the Gupshup BLOCK

网友评论