群聊延漏消息的解決方法以及即時(shí)通訊工具的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種網(wǎng)絡(luò)通訊領(lǐng)域,尤其是一種網(wǎng)絡(luò)通訊工具群聊存在延漏消息的解決方法。
【背景技術(shù)】
[0002]即時(shí)通訊的應(yīng)用相當(dāng)廣泛,在電子商務(wù)網(wǎng)站、社交網(wǎng)站、社交APP應(yīng)用軟件上均有用到,它作為一種有效的溝通方式,可以大大的提高網(wǎng)站或應(yīng)用軟件的用戶粘度。目前,即時(shí)通訊存在漏消息現(xiàn)象的情況,即,用戶在群聊頁面與其它用戶進(jìn)行群聊時(shí),有的客戶端偶爾會(huì)出現(xiàn)不同程度的漏消息現(xiàn)象,即其它用戶發(fā)送的聊天消息會(huì)有個(gè)別的消息未收到的情況。
[0003]聊天功能一般都有單個(gè)聊天和群聊,保證消息能即時(shí)按順序準(zhǔn)確無漏且不重復(fù)的發(fā)送給接收者,是實(shí)現(xiàn)聊天功能的基本要求。單聊相對(duì)群聊來說接收者只有一個(gè),用一個(gè)標(biāo)識(shí)即可確定消息是否已讀,按時(shí)間順序每次取未讀消息即可。群聊功能則復(fù)雜得多。目前已有的實(shí)現(xiàn)群聊功能的方案(這里以基于數(shù)據(jù)庫實(shí)現(xiàn)聊天為準(zhǔn)),在讀取新消息時(shí),會(huì)往前倒推一個(gè)時(shí)間段來避免因網(wǎng)絡(luò)時(shí)延導(dǎo)致在取某個(gè)時(shí)段的消息時(shí),在該時(shí)段發(fā)出的消息還沒入庫而漏掉。由于每次讀取新消息時(shí)都往前倒推一個(gè)時(shí)間段,使得時(shí)間段有重疊,為避免因時(shí)間段重疊導(dǎo)致部分消息重復(fù)讀取,前端需要保留一個(gè)記錄數(shù)組,用于記錄每次取得消息的ID,每次都將取得的消息與記錄數(shù)組中的消息ID進(jìn)行比較,只顯示不在記錄數(shù)組中的消息,顯示完后更新記錄數(shù)組。
[0004]目前現(xiàn)有的技術(shù),通過往前倒推一個(gè)時(shí)間段來避免群聊因網(wǎng)絡(luò)時(shí)延漏消息,倒推的時(shí)間因網(wǎng)絡(luò)的好壞存在不確定性,若倒推時(shí)間太短,在網(wǎng)絡(luò)延時(shí)較大時(shí),還是存在極個(gè)別的漏消息的情況;若過長,則每次重復(fù)取的消息數(shù)目會(huì)增多,會(huì)加大數(shù)據(jù)庫服務(wù)器的壓力。要給定一個(gè)合理的倒推的時(shí)間值需在多種網(wǎng)絡(luò)環(huán)境下經(jīng)多次測(cè)試來確定。且在收接新消息時(shí),需經(jīng)比較過濾掉重復(fù)消息再顯示,在消息發(fā)送頻繁的情況下,每次取得的消息量較大,這就意味著比較的次數(shù)多,會(huì)影響消息接收的實(shí)時(shí)性,不利于用戶體驗(yàn),且實(shí)現(xiàn)起來也比較復(fù)雜。
[0005]目前,解決問題的方法有很多種,不恰當(dāng)?shù)姆椒ㄖ荒軓谋砻嫔咸幚韱栴},只有最好的方法才能徹底解決問題。因此,怎樣提供一種簡單有效的解決群聊因網(wǎng)絡(luò)時(shí)延漏消息的方法,同時(shí)兼顧用戶體驗(yàn),無疑是現(xiàn)在急待解決的問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明需解決的技術(shù)問題是提供一種簡單有效的群聊延漏消息的解決方法。
[0007]為解決上述的技術(shù)問題,本發(fā)明設(shè)計(jì)了一種群聊延漏消息的解決方法,其包括以下步驟:步驟1:為各條群聊消息增加ID字段,ID字段按群聊消息插入順序遞增;步驟2:以每次讀取的最新的群聊消息的ID字段作為區(qū)分歷史消息和新消息的分界點(diǎn);步驟3:取出ID字段大于所述分界點(diǎn)的群聊消息,依順顯示在群聊頁面上,并將最后的群聊消息的ID字段作為新的分界點(diǎn)。
[0008]作為本發(fā)明進(jìn)一步改進(jìn),步驟3中取出ID字段大于所述分界點(diǎn)的群聊消息的步驟設(shè)置定時(shí)器。
[0009]作為本發(fā)明進(jìn)一步改進(jìn),所述定時(shí)器設(shè)置的間隔時(shí)間為Is。
[0010]本發(fā)明還提供了一種即時(shí)通訊工具,包括上述群聊延漏消息的解決方法。所述即時(shí)通訊工具是基于數(shù)據(jù)庫來作為消息存儲(chǔ)與轉(zhuǎn)發(fā)。
[0011]本發(fā)明提供了一種群聊延漏消息的解決方法,有效的利用了群聊消息的ID字段按插入順序遞增的屬性,以每次讀取的最新的那條消息ID作為歷史消息和新消息的分界,從數(shù)據(jù)庫讀取ID字段大于所述分界點(diǎn)的新消息并顯示,處理起來非常簡單方便,簡化了現(xiàn)有技術(shù)往前倒推一個(gè)時(shí)間段來解決網(wǎng)絡(luò)時(shí)延漏消息的方案。本發(fā)明實(shí)時(shí)性較高,更有利于用戶體驗(yàn)。避免了現(xiàn)有技術(shù)因倒推一個(gè)時(shí)間段從而導(dǎo)致取消息的時(shí)間段重疊、在消息顯示前需多次比較來過慮重復(fù)消息的繁瑣處理以及因此而引起的在人多、發(fā)送消息頻繁的情況下多次比較對(duì)消息實(shí)時(shí)顯示的影響。
【具體實(shí)施方式】
[0012]為了使本領(lǐng)域相關(guān)技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施方式,對(duì)本發(fā)明實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施方式僅僅是本發(fā)明一部分實(shí)施方式,而不是全部的實(shí)施方式。
[0013]本發(fā)明提供一種群聊延漏消息的解決方法,有效的利用了群聊消息的ID字段按插入順序遞增的屬性,以每次讀取的最新的那條消息ID作為歷史消息和新消息的分界,從數(shù)據(jù)庫讀取ID字段大于所述分界點(diǎn)的新消息并顯示,處理起來非常簡單方便。
[0014]本發(fā)明提供一種群聊延漏消息的解決方法包括以下步驟:
[0015]為各條群聊消息增加ID字段,ID字段按群聊消息插入順序遞增;并以每次讀取的最新的群聊消息的ID字段作為區(qū)分歷史消息和新消息的分界點(diǎn);再取出ID字段大于所述分界點(diǎn)的群聊消息,依順顯示在群聊頁面上,并將最后的群聊消息的ID字段作為新的分界點(diǎn)。本發(fā)明在這里利用了群聊消息的ID字段按插入順序遞增的屬性,以每次讀取的最新的那條消息ID字段作為區(qū)分歷史消息和新消息的分界點(diǎn),前端只需記錄這個(gè)分界ID字段的值,在定時(shí)器的處理函數(shù)中以ajax異步刷新方式,將記錄的ID字段的值以post方式傳給服務(wù)端,并從數(shù)據(jù)庫中取所有大于該分界值的消息,按ID升序排列,在ajax請(qǐng)求成功的回調(diào)函數(shù)中將取得的消息依次顯示在群聊頁面,并更新記錄ID,將最后一條消息ID字段的值作為新的分界ID點(diǎn)。整個(gè)取消息的過程不依賴消息發(fā)送時(shí)間,也就避免了以時(shí)間片取消息時(shí)網(wǎng)絡(luò)延時(shí)的環(huán)境因素。
[0016]本發(fā)明取出ID字段大于所述分界點(diǎn)的群聊消息的步驟設(shè)置了定時(shí)器,即每隔Is時(shí)間從數(shù)據(jù)庫中讀取ID字段大于所述分界點(diǎn)的群聊消息。
[0017]本發(fā)明群聊延漏消息的解決方法應(yīng)用于即時(shí)通訊工具中,該即時(shí)通訊工具是基于數(shù)據(jù)庫來作為消息存儲(chǔ)與轉(zhuǎn)發(fā)。
[0018]本發(fā)明實(shí)時(shí)性較高,更有利于用戶體驗(yàn)。避免了現(xiàn)有技術(shù)因倒推一個(gè)時(shí)間段從而導(dǎo)致取消息的時(shí)間段重疊、在消息顯示前需多次比較來過慮重復(fù)消息的繁瑣處理以及因此而引起的在人多、發(fā)送消息頻繁的情況下多次比較對(duì)消息實(shí)時(shí)顯示的影響。
[0019]以上僅表達(dá)了本發(fā)明的一種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種群聊延漏消息的解決方法,其特征在于,包括以下步驟: 步驟1:為各條群聊消息增加ID字段,ID字段按群聊消息插入順序遞增; 步驟2:以每次讀取的最新的群聊消息的ID字段作為區(qū)分歷史消息和新消息的分界占.步驟3:取出ID字段大于所述分界點(diǎn)的群聊消息,依順顯示在群聊頁面上,并將最后的群聊消息的ID字段作為新的分界點(diǎn)。2.根據(jù)權(quán)利要求1所述的群聊延漏消息的解決方法,其特征在于,步驟3中取出ID字段大于所述分界點(diǎn)的群聊消息的步驟設(shè)置定時(shí)器。3.根據(jù)權(quán)利要求2所述的群聊延漏消息的解決方法,其特征在于,所述定時(shí)器設(shè)置的間隔時(shí)間為Is。4.一種即時(shí)通訊工具,其特征在于,包括上述權(quán)利要求1-3中任意一項(xiàng)所述的群聊延漏消息的解決方法。5.根據(jù)權(quán)利要求4所述的即時(shí)通訊工具,其特征在于,所述即時(shí)通訊工具是基于數(shù)據(jù)庫來作為消息存儲(chǔ)與轉(zhuǎn)發(fā)。
【專利摘要】本發(fā)明提出了一種群聊延漏消息的解決方法,為各條群聊消息增加ID字段,ID字段按群聊消息插入順序遞增;并以每次讀取的最新的群聊消息的ID字段作為區(qū)分歷史消息和新消息的分界點(diǎn);再取出ID字段大于所述分界點(diǎn)的群聊消息,依順顯示在群聊頁面上,并將最后的群聊消息的ID字段作為新的分界點(diǎn)。本發(fā)明實(shí)時(shí)性較高,更有利于用戶體驗(yàn)。避免了現(xiàn)有技術(shù)因倒推一個(gè)時(shí)間段從而導(dǎo)致取消息的時(shí)間段重疊、在消息顯示前需多次比較來過慮重復(fù)消息的繁瑣處理以及因此而引起的在人多、發(fā)送消息頻繁的情況下多次比較對(duì)消息實(shí)時(shí)顯示的影響。
【IPC分類】H04L12/58, H04L12/18
【公開號(hào)】CN105306348
【申請(qǐng)?zhí)枴緾N201510760494
【發(fā)明人】黃玉鳳
【申請(qǐng)人】上海斐訊數(shù)據(jù)通信技術(shù)有限公司
【公開日】2016年2月3日
【申請(qǐng)日】2015年11月10日