使用AsyncTcpConnection實(shí)現(xiàn)的WS客戶端reConnect()在onClose回調(diào)中調(diào)用,實(shí)現(xiàn)斷線重連. 重新連接之后打印的發(fā)送數(shù)據(jù)會(huì)根據(jù)重啟的次數(shù)增加, 例如第一次就一次發(fā)送一條 第二次就一次發(fā)送2次,第三次就一次發(fā)送3條以此類(lèi)推,
public function onWorkerStart()
{
//ws 形式連接
$con = new AsyncTcpConnection('ws://192.168.55.31:2000/ws');
// $con->websocketPingInterval = 50;
//當(dāng)連接建立成功時(shí),發(fā)送http請(qǐng)求數(shù)據(jù)
$con->onConnect = function(AsyncTcpConnection $con) {
//定時(shí)發(fā)送消息
Timer::add(5, function () use ($con) {
$con->send("連接成功goWebsocket\n");
});
};
//返回的消息
$con->onMessage = function(AsyncTcpConnection $con, $data) {
echo $data;
};
// 當(dāng)連接遠(yuǎn)程websocket服務(wù)器的連接斷開(kāi)時(shí)
$con->onClose = function(AsyncTcpConnection $con){
echo "連接關(guān)閉\n";
$con->reConnect(5);
};
$con->onError = function(AsyncTcpConnection $con, $err_code, $err_msg) {
echo "$err_code, $err_msg \n";
};
$con->connect();
}
這個(gè)onClose關(guān)閉之后調(diào)用重啟為什么會(huì)這樣了?