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

GatewayWorker 底層和mqtt疑惑

嘿嘿嘿嘿

1、在一個(gè)進(jìn)程使用mqtt:
如果只開一個(gè)進(jìn)程,在進(jìn)程啟動(dòng)時(shí)訂閱某個(gè)消息,如果接收到新消息時(shí),上一條還沒有處理完,是等上一條處理完成再處理下一條,還是會(huì)同時(shí)處理兩個(gè)?
如果等待上一條處理完成之后才處理新的,那么堆積消息的最大數(shù)量是根據(jù)什么來的?或者最大堆積消息為多少條?
?2、GatewayWorker的websocket接收消息處理:
如果出現(xiàn)客戶端延遲高發(fā)來的消息丟包GatewayWorker是如何處理的?
如果出現(xiàn)客戶端延遲高發(fā)來的消息出現(xiàn)一條數(shù)據(jù)分成兩個(gè)消息( 如消息{test:ceshi},第一條為{test,第二條為:ceshi}?),這個(gè)時(shí)候 到Event里是會(huì)合并成一條信息還是兩條呢?
?
?

4478 1 0
1個(gè)回答

walkor 打賞

1、workerman作為mqtt客戶端,當(dāng)前消息處理完畢后mqtt服務(wù)端才會(huì)下發(fā)下一條消息,所以workerman這邊不會(huì)有消息堆積
?
2、tcp數(shù)據(jù)傳輸是由操作系統(tǒng)底層完成的,丟包會(huì)重傳,丟包重傳也是由操作系統(tǒng)控制。應(yīng)用層也就是GatewayWorker不用關(guān)心消息丟包,也無法干涉。如果tcp傳輸丟包嚴(yán)重,操作系統(tǒng)底層會(huì)嘗試重傳多次無果后會(huì)斷開連接。
通訊協(xié)議的作用就是用來分包的,通訊協(xié)議會(huì)告訴GatewayWorker發(fā)來的tcp數(shù)據(jù)是否是一個(gè)完整的數(shù)據(jù)包,如果不是就會(huì)等待直到收到一個(gè)完整的消息。websocket也是通訊協(xié)議的一種,所以即使tcp傳輸過程中出現(xiàn)分包,GatewayWorker也會(huì)根據(jù)websocket協(xié)議收到完整的消息之后才會(huì)交給Events.php處理
?

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