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

0

代码如下:


$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 里面抛出异常与系统代码有冲突,所以放弃了,所以想请问下大家是如何处理这个问题的呢?

已邀请:

blogdaren - 专注C编程、PHP内核、LINUX、VIM【http://www.phpcreeper.com】

赞同来自:

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

要回复问题请先登录注册