windows系統(tǒng)下,兩個work之間通信問題,目前awork和a客戶端通信沒問題,bwork和b客戶端通信沒問題
求解答
//awork
$ws = new Worker("websocket://0000:2346");
define('Heartbeat',55);
$ws->count = 1;
$ws->uidConnections = array();
$ws->onWorkerStart = function ($ws){
//設(shè)置一個 間隔 1秒的定時
Timer::add(1,function ()use($ws){
$time_now = time();
foreach($ws->connections as $connection) {
if (empty($connection->lastMessageTime)) {
$connection->lastMessageTime = $time_now;
continue;
}
if ($time_now - $connection->lastMessageTime > Heartbeat) {
$connection->close();
}
}
});
$text_worker = new Worker('Text://0000:5656');
$ws->textWorker = $text_worker;
$text_worker->listen();
};
$ws->onMessage = function($connection, $data)
{
global $ws;
$connection->lastMessageTime = time();
if(!isset($connection->uid))
{
if(intval($data))
{
$connection->uid = $data;
echo $connection->uid."已上線\n";
$ws->uidConnections[$connection->uid] = $connection;
}else{
echo $connection->uid.$data;
}
return ;
}else{
$sid= $connection->uid;
$con = new mysqli($server, $db_username, $db_password,$db_name);
$stm = $con->prepare('select m.id
from manage m where m.aid=?
;');
$stm->bind_param('s', $sid);
$stm->execute();
$result = $stm ->get_result();
if (mysqli_num_rows($result) >0) {
while ($row = mysqli_fetch_assoc($result)){
$mid=$row["id"];
}
}
echo $mid;//這里有數(shù)據(jù),下面報錯
global $text_worker;
$text_worker->onMessage = function($connection, $mid)
{
$connection->send($mid);
echo $mid;
};
}
};
//bwork
$ws2->onMessage = function($connection, $data)
{
global $ws2;
$connection->lastMessageTime = time();
if(!isset($connection->mid))
{
if(intval($data))
{
$connection->mid = $data;
echo $connection->mid."已上線\n";
$ws2->midConnections[$connection->mid] = $connection;
}else{
echo $connection->mid.$data;
}
return ;
}else{
$buffer= $connection->mid;
echo $connection->mid.$data;
$client = stream_socket_client("tcp://0000:5656");
// text 協(xié)議為字符串末尾加一個換行符 \n
echo $data;
fwrite($client, $data."\n");
}
};
Attempt to assign property "onMessage" on null i