国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)于Web推送到硬件與硬件返回?cái)?shù)據(jù)推送到web的設(shè)計(jì)的問(wèn)題

Syname

現(xiàn)在希望實(shí)現(xiàn)的兩個(gè)功能是,在web上通過(guò)點(diǎn)擊按鈕切換燈泡的開(kāi)關(guān),與,燈泡的單片機(jī)硬件每隔幾秒會(huì)發(fā)送當(dāng)前電流量這一數(shù)據(jù)到服務(wù)器,數(shù)據(jù)在web上顯示出來(lái)。具體實(shí)現(xiàn)方法有點(diǎn)思路但并不是很清晰,希望大神指點(diǎn)一二。
設(shè)計(jì)與思路在下:
首先硬件會(huì)通過(guò)tcp協(xié)議連接到服務(wù)器上。
1.打開(kāi)web后,web先建立與gatewayWorker連接的websocket,點(diǎn)擊按鈕會(huì)發(fā)送{'type':'onOrOff','op':'on'}類似這樣的一個(gè)json數(shù)據(jù),便會(huì)觸發(fā)Events文件里的onMessage,使用Gateway::sendToAll()發(fā)送到所有硬件上。這種方法可以嗎?

2.當(dāng)硬件發(fā)送數(shù)據(jù)到服務(wù)器后,觸發(fā)Events文件里的onMessage,目前的設(shè)想是將數(shù)據(jù)放入數(shù)據(jù)庫(kù),web通過(guò)輪詢數(shù)據(jù)庫(kù)再顯示出來(lái)。還有另一個(gè)想法與疑問(wèn)是,觸發(fā)onMessage時(shí)能不能通過(guò)gatewayWorker直接推送到web上呢?在建立websocket的時(shí)候,為web分配一個(gè)uid,硬件數(shù)據(jù)到了服務(wù)器后,Gateway::sendToUID()到web??梢赃@樣實(shí)現(xiàn)嗎?

希望大神能對(duì)我的思路指點(diǎn)指點(diǎn),謝謝。

按鈕如下:

[attach]946[/attach]

3788 3 1
3個(gè)回答

Syname

因?yàn)閣eb也需要接收到推送,時(shí)是不是用GatewayClient不合適?
我這樣的設(shè)計(jì)是不是需要開(kāi)一個(gè)內(nèi)部推送的端口?具體協(xié)議怎么設(shè)置呢?

  • 暫無(wú)評(píng)論
Jeffrey

觸發(fā)onMessage時(shí)能不能通過(guò)gatewayWorker直接推送到web上呢?

顯然是可以的

與web通信肯定要建立 websocket 服務(wù)端,所以主要步驟可以這么做

建立一個(gè)websocket服務(wù)端
tcp服務(wù)端(也就是gatewayWorker)通過(guò) AsyncTcpConnection 將消息推送到websocket服務(wù)端
websocket服務(wù)端接受到推送數(shù)據(jù)之后推送到與之連接的web端

核心就是 gatewayWorker 與 websocket 服務(wù)端的通信,要使用 AsyncTcpConnection 建立兩者的連接。

  • Syname 2018-03-01

    感謝回答!因?yàn)橛布歉魯?shù)秒就推送到gatewayWorker上一串?dāng)?shù)據(jù),請(qǐng)問(wèn)我是要每收到一次數(shù)據(jù)就建立一次AsyncTcpConnection,進(jìn)行send嗎?

maq

這樣做當(dāng)然是可以的,只要你確實(shí)是想用 web 上的一個(gè)開(kāi)關(guān)控制_所有_燈泡。
你的思路是對(duì)的。具體的實(shí)現(xiàn)方法,樓上說(shuō)的就可以。不過(guò)有一點(diǎn),你一定要用 GatewayWorker 嗎?如果僅從你給出的應(yīng)用場(chǎng)景來(lái)看似乎是沒(méi)有必要的,那么其實(shí)還可以再簡(jiǎn)單一些,如下:

在一個(gè)進(jìn)程中開(kāi)兩個(gè) Worker,一個(gè)是 websocket,供 web 連接進(jìn)來(lái),一個(gè)是 tcp(其實(shí)應(yīng)該是 text 或者 frame 協(xié)議),供單片機(jī)連接進(jìn)來(lái)。

  • Syname 2018-03-01

    感謝回答!因?yàn)間atewayWorker寫好了sendToUid與sendToAll這樣的函數(shù),所以感覺(jué)用起來(lái)方便些...

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??