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

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

小小晨曦

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

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

4512 4 0
4個(gè)回答

小小晨曦

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

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

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

  • 小小晨曦 2015-12-21

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

  • walkor 2015-12-21

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

  • 小小晨曦 2015-12-22

    @1:我的意思是md5當(dāng)前的消息體包括了用戶名以及當(dāng)前時(shí)間戳因?yàn)槭莄lient端發(fā)消息做這個(gè)事情 整體來(lái)說(shuō)還好服務(wù)器那頭只是帶著md5的標(biāo)示再回來(lái)而已

小小晨曦

@walkor 報(bào)告下最新進(jìn)展。看了下簡(jiǎn)書(shū)的即時(shí)通訊 居然跳過(guò)了這個(gè)問(wèn)題?。?! 因?yàn)樗?jiǎn)書(shū)無(wú)恥的無(wú)恥的無(wú)恥的用的http請(qǐng)求發(fā)協(xié)議沒(méi)有用websocket ,websocket 在簡(jiǎn)書(shū)中只是用來(lái)推送和拉消息。。。。。。

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

這個(gè)也是個(gè)不錯(cuò)的方法,workerman-chat也能這樣搞

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