我用workerman通過tcp鏈接和遠(yuǎn)程的物聯(lián)網(wǎng)車輛建立了通訊,一切正常。
現(xiàn)在想同時(shí)通過瀏覽器來讀寫和控制數(shù)據(jù),網(wǎng)頁用PHP部署在不同workerman的服務(wù)器。
這個(gè)怎么弄?workerman里面建立兩個(gè)worker嗎?一個(gè)連接遠(yuǎn)程硬件,一個(gè)連接php服務(wù)器?
有沒有類似例程。
謝謝
http://doc.workerman.net/worker/listen.html 這里有例子,可以開一個(gè)進(jìn)程監(jiān)聽兩個(gè)端口,例如websocket端口和text端口,需要給車輛推送數(shù)據(jù)時(shí)和內(nèi)部端口通訊完成推送。
如果是用的gatewayWorker,可以用gatewayClient給物聯(lián)網(wǎng)設(shè)備推送數(shù)據(jù),更簡單一些。
http://doc.workerman.net/faq/push-in-other-project.html 這里是一些例子
謝謝!
我嘗試了例子,working!
然而,我改了一下,我主worker是tcp,然后內(nèi)部啟動(dòng)一個(gè)websocket worker,像這樣:
$tcp_worker = new Worker("tcp://0.0.0.0:2347");
$tcp_worker->count = 1;
$tcp_worker->onWorkerStart=function()
{
global $ws_worker;
$ws_worker = new Worker('text://0.0.0.0:5678');
$ws_worker->uidConnections = array();
$ws_worker->onMessage = "ws_message";
$ws_worker->onMessage = "ws_message";
$ws_worker->onClose = "ws_close";
$ws_worker->listen();
};
發(fā)生錯(cuò)誤:
Worker process terminated
worker exit with status 64000
Exception: class \Protocols\Webscoket not exist in /var/www/gateway/Workerman-master/Worker.php:1976
是不是只能在內(nèi)部用text協(xié)議?