国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

recv data before handshake. Buffer 這是什么情況咧,找了半天沒找到原因,求幫助。

zoofei
$client = new AsyncTcpConnection('ws://xxx.com:80');
$client->onConnect = function($con) {
            $rid = time();
            $lang = "kor";
            $con->send('xxx');
};
$client->onMessage = function($con, $data) use($ids,$orates,$client) {
....
}
$client->connect();

代碼如上,日志隔三差五就報下面錯誤,找不到有原因,求幫助...
recv data before handshake. Buffer:890c31303a34333a35332e373833
error package. package_length=false

7905 4 0
4個回答

walkor 打賞

檢查下代碼里是否有 new Worker('ws://...') 或者 new Gateway('ws://...'),
改成 new Worker('websocket://...') 或者 new Gateway('websocket://...'),

  • 暫無評論
zoofei

感謝walkor回復(fù)
代碼沒有new ws://,
代碼整體啟動了
Gateway('Websocket://0.0.0.0:7272'),
Register('text://0.0.0.0:1236');
BusinessWorker();
然后單獨在開個new Worker();做定時任務(wù)。

Timer::add($this->sec, array($this,'refresh'));
function refresh(){
    $client = new AsyncTcpConnection('ws://xxx:80');
    echo "start connect id:".$client->id;
    因為遠(yuǎn)端經(jīng)常掉線或者踢人,所以沒有保持長連接,每次定時開始都重新new一個連接,獲取數(shù)據(jù)后立即destory,就是這個異步鏈接經(jīng)常報錯:

    start connet id:48
    connect id:48 buffer:05:37:00.426 recv data before handshake. Buffer:890c30353a33373a30302e343236
    error package. package_length=false
}
/*
* Websocket protocol for client.
*/
Class Ws{
    public static function input($buffer, $connection)
    {
        if (empty($connection->handshakeStep)) {
            echo "connect id:".$connection->id."  buffer".$buffer;
            echo "recv data before handshake. Buffer:" . bin2hex($buffer) . "\n";
            return false;
        }
}
  • 暫無評論
walkor 打賞

看起來是服務(wù)端沒有按照websocket協(xié)議來傳輸數(shù)據(jù),還沒有完成websocket握手,服務(wù)端就發(fā)來了websocket數(shù)據(jù)。
正常流程是先發(fā)起websocket握手,然后傳輸數(shù)據(jù)。

  • 暫無評論
zoofei

過年之前我就一直開著服務(wù),年后回來一看,服務(wù)死掉了,有大量這種錯誤,開始以為就是這里搞死服務(wù)的,那現(xiàn)在看起來應(yīng)該不是,遠(yuǎn)端沒有握手,destory掉就是了,應(yīng)該不影響進(jìn)程,搞不清是哪里死掉了,在看看日志吧,感謝回復(fù)

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??