关于一个进程的问题,我不是很明白,求解答。

电脑我来了

我在做毕业设计实现扫码登录的时候使用到这个框架,但是有一事不是很明白。
比如在电脑端打开了websocket连接,这个框架返回一个进程id,接到id后,异步交给thinkphp动态生成一个包含进程id及验证的的二维码,手机扫码,如果点击页面上的确定就会发送数据(包括了进程id)。但是我这个时候刷新了电脑页面,就会重新请求,分配了一个新的进程id。但是我这个时候才点击手机页面上的确定发送数据(数据包含的是原来旧的进程id),发现能通过 !Gateway::isOnline() 这个判断,说明这个旧的进程还是在线的,原来旧的进程id并没有立即消失。现在我是通过心跳来进行验证进程在线与否。我想问一下当刷新页面时,能不能不分配一个新的进程id而继续用原来的进程id,或者说有什么解决办法吗?

阅读 1802
2个回答

电脑我来了

另外说一句,这个框架的手册写得好详细啊,给个赞。

  • 暂无评论
walkor

client_id全局唯一标记一个socket连接,连接断开了,client_id就失效了。
无法重复使用client_id,重复使用client_id会使得socket通讯混乱。

你的情况可以尝试使用Gateway::bindUid 和 Gateway::sendToUid 来处理。
uid为session_id,这样会比较安全。