多台硬件设备要与服务器进行tcp连接,请问是用什么方法 1)服务器打开多个端口监听,一个硬件连接一个服务器端口,但是如何同时监听多个端口,并独立发送数据? 2)服务器只开一个端口,所有硬件都连接同一个端口,请问如何区别这些设备? 还有其他的方法,敬请赐教。
以我的理解,服务端只开一个端口就好了。
我是用的GatewayWorker 客户端连接上后发送一个登录信息,表明客户端是哪个id(硬件都有一个设备id的吧),Events::onMessage里面验证设备是否合法,如果合法就设置个$_SESSION = 'xxxx' 。这样这个设备以后发消息通过$_SESSION 就能知道是哪个设备发的信息了。如果没有$_SESSION 则说明没登录过。 onMessage里验证完后最好用bindUid($client_id,设备id )绑定下,这样就可以在任何时候通过设备id给设备发信息了Gateway::sendToUid(设备id,$msg); 抱歉,说的有点乱...
谢谢,了解啦
受益匪浅 感谢!
以我的理解,服务端只开一个端口就好了。
我是用的GatewayWorker
客户端连接上后发送一个登录信息,表明客户端是哪个id(硬件都有一个设备id的吧),Events::onMessage里面验证设备是否合法,如果合法就设置个$_SESSION = 'xxxx' 。这样这个设备以后发消息通过$_SESSION 就能知道是哪个设备发的信息了。如果没有$_SESSION 则说明没登录过。
onMessage里验证完后最好用bindUid($client_id,设备id )绑定下,这样就可以在任何时候通过设备id给设备发信息了Gateway::sendToUid(设备id,$msg);
抱歉,说的有点乱...
谢谢,了解啦
受益匪浅 感谢!