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