onConnect 里调用 onWebSocketConnect 的回调方法,如果不满足条件关闭了链接该如何终止 onConnect 后续事件呢?

小七他哥

代码如下:

$worker->onConnect = function (\Workerman\Connection\TcpConnection $connection) {
    $connection->onWebSocketConnect = function ($connection, $http_header)  {
        if (!isset($_GET['sid']) || !isSid($_GET['sid'])) {
            $connection->close("\r\n");
            return false;
        }
    };
......后续代码
};

现在的问题是 onWebSocketConnect 回调方法里面把链接关闭了,后续代码还能运行,我之前尝试用 try catch 捕获到异常就退出,但是 onWebSocketConnect 里面抛出异常与系统代码有冲突,所以放弃了,所以想请问下大家是如何处理这个问题的呢?

1360 1 0
1个回答

phpcreeper

https://wenda.workerman.net/question/6603
上个专帖说的很清楚了、你这看来是没理解啊、这两个回调是同步有序调用的、所以按照你这目前的编写逻辑它就是个悖论写法,所以最简单的方案就是:把onConnect里的该迁移的业务代码迁移到onWebsocketConnect里去

年代过于久远,无法发表回答
×
🔝