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