代碼如下:
$worker->onConnect = function (\Workerman\Connection\TcpConnection $connection) {
$connection_ip = $connection->getRemoteIp();
$connection->onWebSocketConnect = function ($connection, $http_header) use ($connection_ip) {
if (!isset($_GET['sid']) || !isSid($_GET['sid'])) {
//第一次關(guān)閉鏈接
$connection->close("\r\n");
return false;
}
$connection->sid = $_GET['sid'];
};
---------A---------------
if (empty($connection->sid)) {
//第二次關(guān)閉鏈接
$connection->close("\r\n");
return false;
}
};
現(xiàn)在的問題是每個(gè)鏈接進(jìn)來(lái),都是在第二次關(guān)閉鏈接這個(gè)地方被關(guān)閉了鏈接,給我的感覺是代碼會(huì)先執(zhí)行A分割線下面的代碼,然后再去執(zhí)行 onWebSocketConnect 回調(diào)里面的代碼,只能自己打標(biāo)記一步步的測(cè)試了,希望作者能回復(fù)一下,如果是我說(shuō)的這樣,應(yīng)該在文檔里面特意說(shuō)明一下,這里有點(diǎn)反常啊,竟然不按代碼順序執(zhí)行。
不要灌水啊兄弟,前面針對(duì)你的兩個(gè)專帖回復(fù)里都表述的很清楚:
本來(lái)執(zhí)行的順序就是這樣的、這和官方文檔是否標(biāo)注沒有任何關(guān)系哈;你需要做的是好好理解下websocket協(xié)議的工作原理,至于想觀測(cè)數(shù)據(jù)包的傳輸過(guò)程、那就tcpdump下、看的是清清楚楚。