最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

NodeJS WebSockets通过NodeJS将消息从设备路由到Angular gui

网站源码admin24浏览0评论

NodeJS WebSockets通过NodeJS将消息从设备路由到Angular gui

NodeJS WebSockets通过NodeJS将消息从设备路由到Angular gui

我已经创建了一个实现套接字管理器的NodeJS应用程序,如下所示:

import { Server } from "ws";
import clientObj from "../objects/clientObj";
import serverObj from "../objects/serverObj";

class socketMgr {
  serverA = undefined;
  serverB = undefined;
  confA = undefined;
  confB = undefined;

  init(cA, cB) {
    this.confA = cA;
    this.confB = cB;
  }

  serve()
  {
    // server between devices and nodejs
    if (this.confA.host && this.confA.port)
    {
      this.serverA = new Server({ host: this.confA.host, port: this.confA.port });
      this.serverA.on("connection", connection => new clientObj(this.confA, conn));
    }
    // server between nodejs and gui
    if (this.confB.host && this.confB.port)
    {
      this.serverB = new Server({ host: this.confB.host, port: this.confB.port });
      this.serverB.on("connection", conn => new serverObj(this.confB, conn));
    }
    return true;
  }
}
export default socketMgr;

此管理器声明并初始化两个发送和接收消息的套接字服务器。整个流程是这样的(简化为1对1的方法):

device <==> NodeJS client/server <==> gui client
  1. 设备连接到NodeJS并在serverA上创建一个客户端(实现事件监听器)
  2. serverA上的客户端回复设备的握手请求
  3. 握手成功后,设备开始定期向NodeJS(服务器A上的客户端)发送消息]
  4. NodeJS客户端处理消息并将某些状态保存到数据库(sql),而不是整个消息,因为这绝对是过大的杀伤力。
  5. TODO:

一旦在服务器客户端上处理了一条消息,该消息就必须以某种方式发送给相应的gui客户端(位于其他端口上)。

这是Web套接字serverB到位的有趣部分。我真的不知道这是否是正确的方法,但是我想使用ServerB实例重新路由/广播到gui。许多设备(数百甚至数千个)最终将发送此类消息,并且许多用户可以从gui端观看这些消息(监视)。

在没有serverB实例的情况下,能否将路由重新路由/广播到gui?

如何在NodeJS中实现这种类型的消息重新路由/广播?

如果我可以提供任何其他信息。关于这个问题,请让我知道。

感谢您对此进行调查。

最好的问候。

我已经创建了一个实现套接字管理器的NodeJS应用程序,如下所示:从“ ws”导入{Server};从“ ../objects/clientObj”导入clientObj;从“ ../objects/serverObj”导入serverObj; ...

回答如下:

您无需为此创建两个服务器。设备和GUI都是客户端。当设备将数据发送到服务器时,您可以通过允许GUI客户端通过主题名称或设备ID订阅设备消息来将此数据发送到GUI。

发布评论

评论列表(0)

  1. 暂无评论