1

我正在观看一个外部资源,每当数据发生变化时,我想根据数据向特定通道发送消息。

我发现有两种方法可以通过反复与 SC 文档碰撞来做到这一点:

  • 通过工作人员观察,这并不理想,因为当有 1000 个客户端在线时,外部数据源会受到来自每个工作人员的请求的冲击

  • 从客户那里,这并不理想,因为我必须订阅频道,发送我的消息,然后取消订阅

如何从 server.js 中执行此操作?

4

1 回答 1

1

当外部资源发生更改时,我发送数据或消息的一个很好的例子是该外部资源(如网站)通过标准方式调用您的套接字集群/发送:

socket.on('documents/upload-file', function (data, respond) {
    documents.uploadFile(data, respond, socket);
});
  • documents.uploadFile我用来上传带有 base64 字符串的文件。
  • 然后我将其保存文件并将文档存储到数据库中。
  • 代码调用documents.getFileList从数据库中提取所有文档信息的函数
  • 然后该数据通过通道发布:

socket.exchange.publish('channels/documentList', updatedDocumentList);

工作人员的全部意义在于处理外部传入事件。在不知道您的外部资源是什么的情况下,我无法具体说明这是否是您的最佳方法,但希望这是一个很好的起点。

于 2017-07-27T09:59:39.077 回答