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ù)器接受了- -就這樣的一個問題
哦 對了- -我以前看過mqtt的qos機制 但是websocket 這種跟mqtt是兩個意思 。而且也看了所謂的ack機制,以及冪等概念。但是無從下手跪求大神們幫助
@walkor 報告下最新進展??戳讼潞啎募磿r通訊 居然跳過了這個問題?。。?因為他簡書無恥的無恥的無恥的用的http請求發(fā)協(xié)議沒有用websocket ,websocket 在簡書中只是用來推送和拉消息。。。。。。