這里寫問題描述
由于外接第三方的WS,他們最多只允許3個(gè)ws connect
因此萌生了一個(gè)想法:做一個(gè)數(shù)據(jù)轉(zhuǎn)發(fā),異步發(fā)一個(gè)connect給第三方,然后拿到數(shù)據(jù),在轉(zhuǎn)發(fā)給多個(gè)客戶端。
現(xiàn)在出現(xiàn)一個(gè)問題:每次客戶端連接,我的發(fā)現(xiàn)都會(huì)異步介入了一次第三方,有沒有大佬幫我看下為啥實(shí)現(xiàn)不了我想要的效果。
$worker = new Worker('websocket://0.0.0.0:8123');
$worker->onMessage = function (TcpConnection $connection, $data) use ($worker) {
TcpConnection::$defaultMaxSendBufferSize = 1048576000;
// 發(fā)起異步連接
$con = new AsyncTcpConnection('ws://ws.xxx.com/');
$con->onConnect = function(AsyncTcpConnection $con) use ($data, $worker){
$con->send('{"action":"subscribe","params":{"data":"111"}}');
};
$con->onMessage = function (AsyncTcpConnection $con, $data) use ($connection,$worker){
foreach($worker->connections as $c)
{
$c->send($data);
}
};
$con->connect();
};