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

workerman-chat 如何服務(wù)器如何回執(zhí)

小小晨曦

walkor兄:
我在使用workerman-chat的過程中發(fā)現(xiàn),websocket是不能像傳統(tǒng)http一樣實現(xiàn)request-response的 那么我遇到一個很棘手的問題希望walkor兄弟以及論壇內(nèi)其他的朋友可以幫助解決下。
問題就是 聊天過程中的消息傳遞問題(以前慚愧用的pomelo 里面send消息可以加回調(diào) websocket不能- -) 如下:
1:A 發(fā)送信息給 B
2:A的信息先發(fā)送到了服務(wù)器,服務(wù)器進行數(shù)據(jù)的持久化等操作,那么此時如何做到讓A知道服務(wù)器已經(jīng)收到了他發(fā)給B的消息呢。
我想了幾種辦法感覺都是不是太好,一、Clien A 發(fā)送消息的時候進行存儲當(dāng)前消息體的md5值 然后帶著md5值發(fā)送給服務(wù)器 ,服務(wù)器持久化以及其他操作完成后回復(fù)給A的時候也帶著md5值,但是這種就比較損耗性能。二、Client A 發(fā)送消息是帶著毫秒的時間戳,也就是說a->b 消息時 我把毫秒時間戳也存到庫中 ,但是毫秒時間戳受制于客戶端的時間設(shè)置。
縱觀兩種方案都不太好。一個性能一個不是完全可靠。

1)client-A向im-server發(fā)送一個消息請求包,即msg:R
2)im-server在成功處理后,回復(fù)client-A一個消息響應(yīng)包,即msg:A
3)client-A和 im-server 需要有一個同意的msgid來確定是哪一條信息被服務(wù)器接受了- -就這樣的一個問題

4465 4 0
4個回答

小小晨曦

哦 對了- -我以前看過mqtt的qos機制 但是websocket 這種跟mqtt是兩個意思 。而且也看了所謂的ack機制,以及冪等概念。但是無從下手跪求大神們幫助

  • 暫無評論
walkor 打賞

客戶端每個消息帶一個消息id就行,消息id在客戶端上自增,要求服務(wù)端返回數(shù)據(jù)時帶上這個消息id

  • 小小晨曦 2015-12-21

    ok~ 我想的md5一下就是怕在數(shù)據(jù)庫中重復(fù)~~ 我在看叮叮的websocket如何做的有結(jié)論了 分享在下面~~

  • walkor 2015-12-21

    好的,謝謝。只md5內(nèi)容的話會有重復(fù)

  • 小小晨曦 2015-12-22

    @1:我的意思是md5當(dāng)前的消息體包括了用戶名以及當(dāng)前時間戳因為是client端發(fā)消息做這個事情 整體來說還好服務(wù)器那頭只是帶著md5的標示再回來而已

小小晨曦

@walkor 報告下最新進展??戳讼潞啎募磿r通訊 居然跳過了這個問題?。。?因為他簡書無恥的無恥的無恥的用的http請求發(fā)協(xié)議沒有用websocket ,websocket 在簡書中只是用來推送和拉消息。。。。。。

  • 暫無評論
walkor 打賞

這個也是個不錯的方法,workerman-chat也能這樣搞

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??