【问题标题】:Send message to socketcluster channel from outside worker从外部工作人员向 socketcluster 通道发送消息
【发布时间】:2017-05-07 10:03:13
【问题描述】:

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

我发现有两种方法可以做到这一点,因为我反复与 SC 文档打交道:

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

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

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

【问题讨论】:

    标签: javascript socketcluster


    【解决方案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);

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

    【讨论】:

    • 点赞!一个非常相似的问题是我有一个文件 api.js 从外部端点接收 websocket 数据,我如何将它转发给所有客户端,如果我在我的工作人员中使用 require api.js,它会连接 4 次
    猜你喜欢
    • 2016-05-29
    • 2020-12-05
    • 2018-11-03
    • 1970-01-01
    • 2022-01-05
    • 2016-05-03
    • 2015-11-12
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多