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

Gateway/Workman模式下的消息"插隊(duì)"情況

wytj0304

我使用Gateway/worker模式搭建了一個(gè)應(yīng)用.其中g(shù)atway->count=4,worker->count=1.在實(shí)際使用中發(fā)現(xiàn),在極少的情況下會(huì)發(fā)生消息(message)插隊(duì)的情況.即clientA發(fā)送給服務(wù)器數(shù)據(jù)123456789,同時(shí)clientB發(fā)送給服務(wù)器987654321.但是服務(wù)器收到的數(shù)據(jù)是123459876543216789,即clientB的數(shù)據(jù)包插入在clientA數(shù)據(jù)包內(nèi).導(dǎo)致解析出錯(cuò).
請(qǐng)問(wèn)下此情況是不是跟gateway非阻塞模式有關(guān)?
如果我將gateway->count調(diào)整至1是不是可以解決這個(gè)問(wèn)題?
另外,如果gateway非阻塞模型在多進(jìn)程高并發(fā)數(shù)據(jù)通訊的情況下會(huì)有消息插隊(duì)問(wèn)題,怎樣才能有一個(gè)相對(duì)完備的方案?
謝謝!

5239 8 0
8個(gè)回答

wytj0304

gateway使用的tcp協(xié)議,socket數(shù)據(jù)"粘包"我已經(jīng)通過(guò)程序處理,但是這種插隊(duì)問(wèn)題感覺(jué)無(wú)法通過(guò)程序代碼解決

  • 暫無(wú)評(píng)論
walkor 打賞

不會(huì)出現(xiàn)插隊(duì)
gateway不能用tcp,使用現(xiàn)有協(xié)議或者參考手冊(cè)寫(xiě)一個(gè)協(xié)議,否則會(huì)粘包,導(dǎo)致數(shù)據(jù)連在一起

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

我在event.php中的onMessage函數(shù)里面每個(gè)$message記錄了下來(lái),之前所說(shuō)的數(shù)據(jù)包"插隊(duì)"問(wèn)題的場(chǎng)景是這樣的:
有兩個(gè)客戶(hù)端同時(shí)向服務(wù)器不停的發(fā)送數(shù)據(jù),架設(shè)兩個(gè)客戶(hù)端在一段時(shí)間內(nèi)都向服務(wù)器發(fā)送了3個(gè)數(shù)據(jù)包.在一些情況下客戶(hù)端A會(huì)將數(shù)據(jù)以2.5+0.5的方式發(fā)送,即$message中現(xiàn)接受到A的2.5個(gè)數(shù)據(jù)包,然后接收0.5個(gè)剩余數(shù)據(jù)包.但同時(shí)客戶(hù)端B向服務(wù)器連續(xù)發(fā)送了3個(gè)數(shù)據(jù)包(按照1+1+1)方式.
最終在onMessage函數(shù)里面每個(gè)$message的順序?yàn)? 2.5(A) 1(B) 1(B) 1(B) 0.5(A).就是我說(shuō)的插隊(duì)現(xiàn)象.

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

原先我在每個(gè)數(shù)據(jù)包頭中增加了長(zhǎng)度來(lái)處理粘包問(wèn)題.現(xiàn)在想來(lái)那只是針對(duì)單個(gè)sock_id才有用,對(duì)于現(xiàn)在多個(gè)客戶(hù)端同時(shí)推送服務(wù)器信息的情景.可能需要對(duì)每個(gè)sock_id設(shè)置獨(dú)立的緩沖區(qū).
假如我按照你的建議寫(xiě)一個(gè)協(xié)議,是否可以解決我說(shuō)的問(wèn)題?

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

補(bǔ)充一下,不知道我表達(dá)的是否明確
架設(shè)網(wǎng)關(guān)收到的數(shù)據(jù)包順序: 2.5(A) 1(B) 1(B) 1(B) 0.5(A)
使用多連接共用緩沖區(qū)在解析第三個(gè)數(shù)據(jù)報(bào)文時(shí),會(huì)將A客戶(hù)端的0.5個(gè)報(bào)文合并到B客戶(hù)端報(bào)文上,導(dǎo)致整體出錯(cuò).
使用自定義協(xié)議的話(huà),能否避免這個(gè)問(wèn)題?

  • 暫無(wú)評(píng)論
walkor 打賞

去參考手冊(cè)搞個(gè)協(xié)議就好了
或者直接用workerman的Text協(xié)議
協(xié)議格式為 數(shù)據(jù)包+換行符

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

問(wèn)題已經(jīng)解決,重新寫(xiě)了一個(gè)協(xié)議.
原來(lái)對(duì)gateway/worker的運(yùn)行方式理解有誤導(dǎo)致,多謝指導(dǎo)哈

  • 暫無(wú)評(píng)論
walkor 打賞

不客氣

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??