假設 有個人臉設備A,和一個瀏覽器B,當 A端向workerman傳送數(shù)據(jù)后,進行接收,并把數(shù)據(jù)實時顯示到 瀏覽器中,(相當于workerman作為一個中間件來使用),請問這個代碼應該如何實現(xiàn)??
用workerman的gatewayWorker,它非常適合做物聯(lián)網(wǎng),可以支持多個協(xié)議,給設備設置一個TCP協(xié)議,給網(wǎng)頁設置一個websocket協(xié)議。
設備通過tcp連上來之后給GatewayWorker發(fā)一個設備id,Events.php里利用 Gateway::bindUid($client_id, '設備id'); 執(zhí)行綁定。
網(wǎng)頁通過websocket連上來之后發(fā)送自己的一個類似uid的標記,Events.php里同樣利用 Gateway::bindUid($client_id, 'uid'); 執(zhí)行綁定。
然后設備發(fā)數(shù)據(jù)給GatewayWorker,GatewayWorker里Events.php里就可以通過Gateway::sendToUid('uid' ,數(shù)據(jù));給對應瀏覽器發(fā)數(shù)據(jù)。同樣的,瀏覽器里通過websocket發(fā)來數(shù)據(jù),Events.php里就可以通過Gateway::sendToUid('設備id' ,數(shù)據(jù));發(fā)給對應設備,這樣就可以設備和瀏覽器之間互相通訊了。
這里有GatewayWorker多協(xié)議部分的手冊 http://doc2.workerman.net/multi-protocols.html