硬件、服务端、客户端三者之间如何通信,实现转发

fuqiang

遇到一个很棘手的问题,在使用GatewayWorker时:
硬件设备与服务端之间必须通过TCP来进行通信,服务端获取了硬件设备发送过来的数据后,需要转发给客户端,而客户端与服务端建立之间又必须通过webScoket来进行通信。
请问如何这个时候该如何进行处理呢?就很懵逼这里
2021/03/29 19:11
可能各位大佬理解错了我的意思,我想实现的内容:
1、首先硬件设备与服务端之间通过TCP进行握手,握手成功;
2、服务端将指令发送给硬件设备,硬件接收到相应指令后开始向服务端一直发送某一数据包;
3、服务端接收到这些数据包后进行解析,解析完毕后,将这些数据实时转发给客户端,但是客户端与服务端之间是通过WebSocket来实现长连接;
因此,这一步我就卡住了,不知道以什么样的方式将硬件设备传输过来的数据通过WebSocket转发至客户端;希望各位有过此类项目经验的大佬,教教小弟弟!

2647 2 0
2个回答

我是厂长

这没有任何蛋疼的地方啊, 硬件和你的服务器对接, 你把数据保存到db或者cache里面, 然后在db或者cache里面,在取出数据通过ws协议给到你的客户端,妥妥的解决

  • fuqiang 2021-03-29

    这个思路阔以,我去尝试一下,看行不行,感谢这位大佬!

不败少龙

直接在event.php里面处理 根据类型去区分是设备还是网页

  • fuqiang 2021-03-30

    请问如何在Events.php中区分是设备还是网页呢?

  • 不败少龙 2021-03-30

    网页发送的内容肯定是知道的吧,加一个字段去区分一下

  • 不败少龙 2021-03-30

    设备一般发送过来的数据是进制数据需要转化

  • fuqiang 2021-03-30

    我在里面通过端口来进行判断了,发现也是可行的,但问题是两个服务中的代码几乎一模一样

  • 不败少龙 2021-03-30

    两个服务???不是走一个event里面吗?

  • 不败少龙 2021-03-30

    只要是web发过来的就转给设备

年代过于久远,无法发表回答
×
🔝