workerman建立了2个监听,一个http启用ssl,一个udp。
现在有这么一个需求,在不改动现有前段的情况下,前端访问https地址请求相关数据,后台程序收到用户的https的请求,通过服务器去发送udp新给另外一个设备请求信息,处理后再返回结果给https的请求。
如何才能做到这种流程。
另外后台可能和另外一个设备UDP通讯来回2次,如何让他线性完成整个流程,在我理解里,好像每次接收UDP数据都是另外一个线程在执行,不能和TCP一样长链等待。
如果用户多,请求多,不区分的话数据很乱,不知道那个数据归属哪个用户。
感谢!
php里发udp数据和接收返回类似下面的代码
$socket = stream_socket_client('udp://x.x.x.x:xx');
stream_socket_sendto($socket, $msg);
$result = stream_socket_recvfrom($socket, 65535);
老大快来呀
[attach]681[/attach]
@walkor 昨天忘记传图了,我先实验您回复的方法。。
关键问题在服务器,回复的时候使用5000端口,我们进程发送是用5100
如果多个用户一起发起https请求的时候,服务器2回复的数据就不知道是谁的了。服务器2操作不了。
$opts = array(
'socket' => array(
'bindto' => '本机ip:5000',
),
);
$context = stream_context_create($opts);
$socket = stream_socket_client('udp://x.x.x.x:xx', $errno, $errmsg, 0, $context);
stream_socket_sendto($socket, $msg);
$result = stream_socket_recvfrom($socket, 65535);
fclose($cocket);
作为udp客户端可以不用监听5000端口。如果服务端固定向5000端口返回数据,udp客户端绑定socket本机端口为5000就行。