从外部工作人员向 socketcluster 通道发送消息
Send message to socketcluster channel from outside worker
我正在观看一个外部资源,每当数据发生变化时,我想根据数据向特定频道发送消息。
我通过对 SC 文档反复摇头找到了两种方法来做到这一点:
从工作人员那里观察,这并不理想,因为当有 1000 个客户端在线时,外部数据源会受到来自每个工作人员的请求的冲击
来自客户,这并不理想,因为我必须订阅频道,发送消息,然后取消订阅
如何从 server.js 中执行此操作?
我有一个很好的例子,当外部资源发生变化时发送数据或消息,外部资源(如网站)通过标准方式调用您的套接字集群on/emit:
socket.on('documents/upload-file', function (data, respond) {
documents.uploadFile(data, respond, socket);
});
documents.uploadFile
我用 base64 字符串上传文件。
- 然后我将其保存为文件并将文档存储到数据库中。
- 调用函数的代码
documents.getFileList
从数据库中提取所有文档信息
- 然后该数据通过渠道发布:
socket.exchange.publish('channels/documentList', updatedDocumentList);
worker 的全部意义在于处理外部传入事件。在不知道您的外部资源是什么的情况下,我无法具体说明这是否是最适合您的方法,但希望它是一个不错的起点。
我正在观看一个外部资源,每当数据发生变化时,我想根据数据向特定频道发送消息。
我通过对 SC 文档反复摇头找到了两种方法来做到这一点:
从工作人员那里观察,这并不理想,因为当有 1000 个客户端在线时,外部数据源会受到来自每个工作人员的请求的冲击
来自客户,这并不理想,因为我必须订阅频道,发送消息,然后取消订阅
如何从 server.js 中执行此操作?
我有一个很好的例子,当外部资源发生变化时发送数据或消息,外部资源(如网站)通过标准方式调用您的套接字集群on/emit:
socket.on('documents/upload-file', function (data, respond) {
documents.uploadFile(data, respond, socket);
});
documents.uploadFile
我用 base64 字符串上传文件。- 然后我将其保存为文件并将文档存储到数据库中。
- 调用函数的代码
documents.getFileList
从数据库中提取所有文档信息 - 然后该数据通过渠道发布:
socket.exchange.publish('channels/documentList', updatedDocumentList);
worker 的全部意义在于处理外部传入事件。在不知道您的外部资源是什么的情况下,我无法具体说明这是否是最适合您的方法,但希望它是一个不错的起点。