多台硬件设备与服务器进行tcp连接,如何区别连接

shiliang

多台硬件设备要与服务器进行tcp连接,请问是用什么方法
1)服务器打开多个端口监听,一个硬件连接一个服务器端口,但是如何同时监听多个端口,并独立发送数据?
2)服务器只开一个端口,所有硬件都连接同一个端口,请问如何区别这些设备?
还有其他的方法,敬请赐教。

10636 3 1
3个回答

智佳思远

以我的理解,服务端只开一个端口就好了。

我是用的GatewayWorker
客户端连接上后发送一个登录信息,表明客户端是哪个id(硬件都有一个设备id的吧),Events::onMessage里面验证设备是否合法,如果合法就设置个$_SESSION = 'xxxx' 。这样这个设备以后发消息通过$_SESSION 就能知道是哪个设备发的信息了。如果没有$_SESSION 则说明没登录过。
onMessage里验证完后最好用bindUid($client_id,设备id )绑定下,这样就可以在任何时候通过设备id给设备发信息了Gateway::sendToUid(设备id,$msg);
抱歉,说的有点乱...

  • 暂无评论
shiliang

谢谢,了解啦

  • 暂无评论
dahai125

受益匪浅 感谢!

  • 暂无评论
年代过于久远,无法发表回答
🔝