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

gatewayworker 是否適合大型IM消息通訊?

meows

1、看gatewayworker 源碼,似乎每個(gè)客戶端消息都存在一個(gè)內(nèi)存變量大概10MB,
如果發(fā)送速度過(guò)快,新來(lái)的消息不就丟失了?
2、這種一般用什么樣的技術(shù)來(lái)做,更加合適?

1437 1 3
1個(gè)回答

walkor 打賞

聊天業(yè)務(wù),單個(gè)客戶短時(shí)間內(nèi)不會(huì)收到10M的文字消息,10M的聊天內(nèi)容相當(dāng)于350萬(wàn)漢字,遠(yuǎn)超過(guò)四大名著總文字量,閱讀完可能需要個(gè)把月(圖片 文件下載走的是http,不走gatewayWorker)。
一個(gè)客戶峰值每秒收到的信息量也就幾K,一天累加起來(lái)一般不會(huì)超過(guò)1M。

不知道你說(shuō)的大型是指多大型,如果是微信的體量肯定不是靠gatewayWorker這一個(gè)框架就能支持的,如果是的話就沒(méi)有架構(gòu)師什么事了。gatewayWorker支持?jǐn)?shù)萬(wàn)在線有不少開(kāi)發(fā)者驗(yàn)證過(guò)的,數(shù)十萬(wàn)在線應(yīng)該也問(wèn)題不大。

推薦只把gatewayWorker當(dāng)作推送通道,除了上下線事件處理,GatewayWorker里不做業(yè)務(wù)相關(guān)的東西。業(yè)務(wù)全部走h(yuǎn)ttp處理,比如消息發(fā)送先走h(yuǎn)ttp服務(wù),http服務(wù)里判斷權(quán)限等,然后調(diào)用GatewayClient調(diào)用gatewayWorer接口發(fā)送消息。

如果你的業(yè)務(wù)對(duì)消息送達(dá)比較敏感,應(yīng)該在http服務(wù)里將每條消息存到數(shù)據(jù)庫(kù),加上是否送達(dá)標(biāo)記。有了送達(dá)標(biāo)記,即使客戶不在線,消息也不會(huì)丟失。
客戶上線時(shí)ajax獲取最近未讀消息,這樣即使沒(méi)有g(shù)atewayWorker服務(wù),離線的消息都能讀到。

GatewayWorker是即時(shí)的,有很多不可抗拒因素導(dǎo)致消息發(fā)不到,例如客戶端根本沒(méi)在線,最小化js暫停,網(wǎng)絡(luò)斷開(kāi),網(wǎng)絡(luò)故障,甚至服務(wù)器死機(jī),你不能指望gatewayWorker給你100%送達(dá),需要有一個(gè)像上面說(shuō)的消息保存+標(biāo)記+拉取機(jī)制。

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