客户端和gateway保持着socket长连接,这个连接断开就代表客户端下线。所以判断某个客户端是否在线,就判断对应的socket连接是否断开即可。在workerman中如果某个socket断开,workerman会立刻检测到,然后会将该客户端的连接数据清理。
当使用Gateway::isOnline($client_id)时,实际上就是去gateway上判断对应的$client_id对应的连接信息是否存在,在就代表在线,不存在就代表下线。
迫使客户端下线原理是服务端gateway主动断开与客户端的连接,并清理对应client_id的连接数据。
客户端和gateway保持着socket长连接,这个连接断开就代表客户端下线。所以判断某个客户端是否在线,就判断对应的socket连接是否断开即可。在workerman中如果某个socket断开,workerman会立刻检测到,然后会将该客户端的连接数据清理。
当使用Gateway::isOnline($client_id)时,实际上就是去gateway上判断对应的$client_id对应的连接信息是否存在,在就代表在线,不存在就代表下线。
迫使客户端下线原理是服务端gateway主动断开与客户端的连接,并清理对应client_id的连接数据。