关于在GatewayWorker里用户授权后的问题

chen

使用GatewayWorker做的长连接和客户端通信,非常感谢walkor老大开源这么好用的项目

客户端在连接上服务器时做用户登录,现在用的手册里提供的 Timer 定时器方法
https://workerman.net/doc/gateway-worker/close-unauthed-connections.html

请教个问题:
但是客户端连接上服务器后,如果30s内不认证,而是直接进行其他操作,那就每次都得判断这个用户是否登录。

怎么能加一个类似webman里middleware的东西,所有消息都先走一遍这个中间件,判断这个用户没login就执行其他操作时,直接断开这个连接

1011 2 0
2个回答

Tinywan

onMessage 开头自己定义一个就可以了

  • 暂无评论
2548a

哪里需要每次都判断,这种就是一个判断的事
if ($type == 'login_in') { // 登录
self::auth();
return;
}

    self::$uid = $_SESSION['uid'] ?? '';
    // 未登录
    if (!self::$uid) {
        Gateway::sendToClient($client_id, wsJson(500, '未登录,无法访问'));
        return;
    }
  • 暂无评论
年代过于久远,无法发表回答
🔝