thinkphp websocket即时通讯
基于thinkphp框架的fastadmin,用GatewayWorker版本3.0.0
1、用户A和用户B在不同的地方登录,聊天正常,当用户B再其他的地方登录就不正常了。用户A发送消息,用户B无法接收到。用户B发送消息,用户A无法接收到。
2、今天测试获取用户绑定的客户端为空。
/**
* 获取与 uid 绑定的 client_id 列表
*
* @param string $uid
* @return array
*/
public static function getUidToClientId($uid)
{
return GatewayClient::getClientIdByUid($uid);
}
3、workerman.log如下图
4、常驻进程状态如下图
5、如何利用thinkphp+GatewayWorker实现用户只能在一个地方登录。或者多端登录,都可以用户双方能接收到相互发送的信息。
加入同一个群聊。www.workerman.net/doc/gateway-work...
按UID排序然后转成字符串作为房间ID。
laravel用哪个
可以看下getClientIdByUid是怎么实现的 以及存的时候是怎么存的 可以改造成一个uid对应多个clientid那种 发消息的时候广播出去就好了
没有人吗
多端登录时,检查一下是否已在其他设备登录过,要么把那个账号踢掉,要么不允许当前账号登录。