$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
检查下代码里是否有 new Worker('ws://...') 或者 new Gateway('ws://...'),
改成 new Worker('websocket://...') 或者 new Gateway('websocket://...'),
感谢walkor回复
代码没有new ws://,
代码整体启动了
Gateway('Websocket://0.0.0.0:7272'),
Register('text://0.0.0.0:1236');
BusinessWorker();
然后单独在开个new Worker();做定时任务。
看起来是服务端没有按照websocket协议来传输数据,还没有完成websocket握手,服务端就发来了websocket数据。
正常流程是先发起websocket握手,然后传输数据。
过年之前我就一直开着服务,年后回来一看,服务死掉了,有大量这种错误,开始以为就是这里搞死服务的,那现在看起来应该不是,远端没有握手,destory掉就是了,应该不影响进程,搞不清是哪里死掉了,在看看日志吧,感谢回复