怎样把接收的数据显示到前台?并且在前台发送对应数据给特定的设备?

huagaojian

应用场景
有一些硬件设备(3G模块),注册上之后会去连接服务器,服务端开了一个socket,走的是http协议,$webserver = new WebServer('http://0.0.0.0:8080');
这些设备连上之后,需要人工操作在前端发送一些指令给设备,需要怎么做?

4864 3 0
3个回答

walkor

前台和workerman之间用websocket协议,workerman和设备之间用socket连接
可以使用gatewayWorker去做,开两个端口,一个websocket协议端口与前端连,一个tcp端口与设备连。
业务逻辑都在event.php中写,在这个event.php中可以控制二者通讯,具体参考gatewayWorker手册

多协议支持部分:
http://workerman.net/gatewaydoc/advanced/multi-protocols.html

gatewayWorker代码:
https://github.com/walkor/GatewayWorker

websoket demo
http://www.workerman.net/workerman-chat

  • 暂无评论
huagaojian

gatewayWorker我没用过,在event中的onMessage可以写逻辑,那这边onMessage是否可以同时支持websocket和设备的socket的回调?然后可以向指定的id发送具体消息?

/**
 * 当客户端发来消息时触发
 * @param int $client_id 连接id
 * @param string $message 具体消息
 * @link http://gatewayworker-doc.workerman.net/gateway-worker-development/onmessage.html
 */
public static function onMessage($client_id, $message)
{
    // 向所有人发送 @see http://gatewayworker-doc.workerman.net/gateway-worker-development/send-to-all.html
    Gateway::sendToAll("$client_id said $message");
}
  • 暂无评论
walkor

gatewayWorker我没用过,在event中的onMessage可以写逻辑,那这边onMessage是否可以同时支持websocket和设备的socket的回调?然后可以向指定的id发送具体消息?

支持

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