具體的業(yè)務(wù)需求是這樣的:
開發(fā)一個服務(wù)端,需要支持硬件的tcp長連接,硬件連接到服務(wù)端之后回跟服務(wù)端進(jìn)行通信。
在web端實時監(jiān)控設(shè)備的在線狀態(tài)和數(shù)據(jù)上報,并且能在web端下發(fā)指令給連接著服務(wù)端的硬件。
關(guān)于第一點(diǎn),用Gateway框架可以直接實現(xiàn)。但是關(guān)于第二點(diǎn)需求,我目前的做法是利用Workerman重新建立一個websocket的服務(wù)端,然后web連接上這個websocket的服務(wù)端,所有的跟硬件之間的通信都通過_AsyncTcpConnection_進(jìn)行通信,雖然勉強(qiáng)實現(xiàn)了功能,但是總覺得有點(diǎn)不太方便。有沒有更好的解決辦法?
我一般也會像你這樣做。
hello!我想麻煩問下,Gateway框架下 start_gateway.php 可以有兩個嗎?比如我一個是tcp協(xié)議(start_gateway_tcp.php),另一個是websocket協(xié)議(start_gateway_websocket),然后端口設(shè)置成不同的,這樣就不用通過異步連接來通信了。不過我測試了一下是不行的,不知道理論上是不是可以?我看了文檔上說支持多協(xié)議,不知道是不是我理解偏了。
和我項目需求差不多,我現(xiàn)在也是跑2個GW,一個是處理硬件數(shù)據(jù)上報,一個websocket給WEB后臺推送設(shè)備狀態(tài),多協(xié)議沒問題的
我也是分開文件,設(shè)備tcp與gatewayworker連接。然后網(wǎng)頁端用websocket與gatewayworker連接。正在測試中