本發明涉及一種判斷即時通訊消息已讀的方法及裝置裝置,屬于通信技術領域。
背景技術:
即時通訊(Instant Messenger,簡稱IM)是指能夠即時發送和接收互聯網消息的業務。自面世以來,即時通訊的功能日益豐富,即時通訊不再是一個單純的聊天工具,它已經發展成集交流、資訊、娛樂、搜索、電子商務、辦公協作和企業客戶服務等為一體的綜合化信息平臺,是一種終端連網即時通訊網絡的服務。即時通訊不同于e-mail在于它的交談是即時的。大部分的即時通訊服務提供了狀態信息的特性——顯示聯絡人名單、聯絡人是否在線、能否和聯絡人交談,即時通訊消息是否已讀等。即時通訊消息已讀狀態的處理技術是指針對消息發送者所發出的消息是否被消息接收者已讀的狀態判斷以及對判斷結果的界面呈現反饋。
在即時通訊系統的一般使用場景中,消息發送者發出消息后,無法獲知所發出的消息是否被消息接收者所閱讀。為了進一步提升即時通訊系統的用戶體驗,可為消息發送者發出的每條消息在用戶界面上標記是否被消息接收者已讀,從而對消息發送者進行了直觀的反饋,對于提升即時通訊系統使用者的用戶體驗具有較強的意義。
為了實現即時通訊消息已讀狀態的顯示效果,傳統的做法是將消息發送者發出的每條消息是否被消息接收者閱讀的狀態進行逐條記錄判斷。然而這種做法需要對每條消息的已讀狀態進行記錄和分析,對系統的存儲和處理效率提出了較高要求,并且會隨消息數量級的增加而進一步增加對即時通訊服務器和客戶端所帶來的存儲、處理壓 力。因此,在即時通訊系統中,如果對每條已發出消息的已讀狀態進行記錄及判斷,會極大的降低系統的存儲及處理效率,具有一定的局限性。
技術實現要素:
本發明要解決的技術問題是:如何快速高效判斷及反饋即時通訊消息。
為實現上述的發明目的,本發明提供了一種判斷即時通訊消息已讀的方法及裝置。
一方面,本發明提供一種判斷即時通訊消息已讀的方法,應用于包括消息發送端、消息服務端和消息接收端的通訊系統中,所述方法包括如下步驟:
所述消息接收端閱讀所述消息發送端發送的消息時,向所述消息發送端和所述消息服務端發送帶有閱讀消息時間的通知消息;
所述消息服務端過濾所述通知消息并解析存儲;
所述消息發送端根據所述消息接收端發送的通知消息中的閱讀消息時間的判斷消息已讀狀態并顯示。
其中較優地,所述通知消息為RTS消息,所述RTS消息中包括:將消息標記為RTS類型的消息類型屬性信息、標記個人會話或多人會話的會話屬性信息、標記消息接收端閱讀消息時間的時間點屬性信息。
其中較優地,時間點屬性信息包括用于標識會話中消息接收端閱讀消息的時間點的長整形數字。
其中較優地,所述判斷消息已讀狀態的步驟包括:
如果所述消息接收端的閱讀消息時間大于所述消息發送端發出的消息的發送時間,則所述消息發送端發出的該條消息已被所述消息接收端閱讀;
如果所述消息接收端的閱讀消息時間小于所述消息發送端發出 的消息的發送時間,則所述消息發送端發出的該條消息未被所述消息接收端閱讀。
其中較優地,所述消息服務端過濾所述通知消息并解析存儲步驟包括:
所述消息服務端過濾通知消息并提取通知消息中的閱讀時間點屬性信息存儲。
其中較優地,所述還包括所述消息發送端上線后向所述消息服務端獲取存儲的閱讀消息時間信息的步驟。
其中較優地,所述消息發送端向所述消息服務端獲取存儲的閱讀消息時間信息的步驟還包括向消息服務端發送消息發送端的用戶名和即時消息唯一標識。
其中較優地,所述通知消息與消息發送端的用戶名以鍵值對形式存儲在數據庫的會話記錄的數據結構中。
其中較優地,所述消息已讀狀態是以文字或圖標形式顯示的。
另一方面,本發明提供一種判斷即時通訊消息已讀的裝置,應用了上述的方法,所述裝置包括通知更新模塊和存儲記錄模塊;
所述通知更新模塊用于在消息接收端閱讀消息的同時通知消息發送端更新其閱讀時間點;
所述存儲記錄模塊用于在消息發送端完成對消息接收端閱讀時間點的記錄或更新,并據此時間點與消息時間作比較得出消息已讀狀態實現界面的提示更新,使消息發送端直觀的獲知消息已讀或未讀狀態。
本發明提供的判斷即時通訊消息已讀的方法及裝置,以消息接收端的消息讀取時間點RTS值為基本控制單位,這種消息已讀或未讀狀態的判斷依據不會因消息數量的增加而成倍增加,有效降低了給系統帶來的存儲、處理壓力,結合消息的發送時間屬性,即可對消息的已讀未讀狀態進行判斷反饋,執行效果上可實現一對一的個人消息或一 對多的多人消息已讀狀態的快速高效判斷,具有較高的靈活性。
附圖說明
圖1是本發明判斷即時通訊消息已讀的方法流程示意圖;
圖2是本發明即時通訊消息已讀狀態顯示示意圖;
圖3是本發明已讀用戶名集合和未讀用戶名集合顯示示意圖。
具體實施方式
下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。
如圖1所示,本發明提供一種判斷即時通訊消息已讀的方法,該方法應用于包括消息發送端、消息服務端和消息接收端的通訊系統中,所述方法包括如下步驟:所述消息接收端閱讀所述消息發送端發送的消息時,向所述消息發送端和所述消息服務端發送帶有閱讀消息時間的通知消息;所述消息服務端過濾所述通知消息并解析存儲;所述消息發送端根據所述消息接收端發送的通知消息中的閱讀消息時間的判斷消息已讀狀態并顯示。下面對本發明和提供的判斷即時通訊消息已讀的方法展開詳細的說明。
本發明應用于包括消息發送端、消息服務端、消息接收端的即時通訊系統中,消息發送端通過消息服務端向歇息接收端發送消息,消息接收端通過消息服務端向消息發送端反饋消息讀取通知。在本發明中,消息發送端向消息接收端發送消息后,消息接收端打開即時通訊的消息接收端,讀取消息。消息接收端在讀取消息的同時觸發向消息發動端傳送讀取消息的通知消息。該通知消息優選是RTS(Read Time of Session)的通知消息。RTS消息中包括:將消息標記為RTS類型的消息類型屬性信息,用于服務器或客戶端過濾此類型消息作RTS屬性分析;標記個人會話或多人會話的會話屬性信息,用于使服務器客戶端針對會話類型進行相應處理;標記消息接收端閱讀消息時間的時間點屬性信息。消息接收端向消息發動端傳送讀取消息的通知消息為 后臺的自動行為,非用戶主動行為。標記消息接收端閱讀消息時間的時間點的屬性,記為RTS值,將會被服務器或客戶端存儲在數據庫中。RTS值是長整形數字,僅在所屬會話中有效,用于標識會話中消息接收端閱讀消息的時間點。
消息發送端接收消息接收端發送的通知消息后對通知消息解析并記錄。所述消息發送端根據所述消息接收端發送的通知消息中的閱讀消息時間的判斷消息已讀狀態并顯示。消息發送端將解析到的閱讀消息時間消息的發送時間進行比較得出消息已讀或未讀狀態;根據判斷結果,在用戶界面上通過文字或圖標顯式提示消息發送端某條消息的已讀或未讀。對于多人會話,可查看具體的已讀、未讀人員信息。具體地,判斷消息已讀狀態的步驟包括:如果所述消息接收端的閱讀消息時間大于所述消息發送端發出的消息的發送時間,則所述消息發送端發出的該條消息已被所述消息接收端閱讀;如果所述消息接收端的閱讀消息時間小于所述消息發送端發出的消息的發送時間,則所述消息發送端發出的該條消息未被所述消息接收端閱讀。
消息接收端向消息發送端發送通知消息的同時,消息服務端過濾所述通知消息并解析存儲。所述消息服務端過濾通知消息并提取通知消息中的閱讀時間點屬性信息存儲。所述的消息發送端從服務器端獲取消息接收端的通知消息是用于無法正常接收通知消息更新通知消息時獲取通知消息的處理。所述還包括所述消息發送端上線后向所述消息服務端獲取存儲的閱讀消息時間信息。當消息接收端端發送通知消息時,消息發送端未在線或因其他原因未收到通知消息時,消息發送端可以在打開會話界面時或網絡狀態切換等時機從消息服務端請求并獲取到消息服務端所記錄的消息接收端的通知消息。
消息發送端從服務器端獲取消息接收端的通知消息所傳遞的請求參數包括自身的用戶名,會話的唯一標識。如果是個人會話,會話的唯一標識是會話對方的用戶名,從服務器請求得到的是會話對方的 RTS值;如果是多人會話,會話的唯一標識是多人會話的群組唯一標識ID,從服務器請求得到的是參與多人會話的各成員的RTS值。
對于多人會話,根據給定的某條消息發出時間,將多人會話的成員用戶名及其RTS值存儲在鍵值對類型的數據結構中,具體地,所述通知消息與消息發送端的用戶名以鍵值對形式存儲在數據庫的會話記錄的數據結構中。如圖2、圖3所示,通過遍歷該數據結構即可通過比較得出已讀人數及未讀人數,進而也可篩選出多人會話中某條消息具體的已讀用戶名集合和未讀用戶名集合,方便消息發送端查看多人會話中自己所發出的消息的已讀、未讀人員信息。
為進一步體現本發明提供的判斷即時通訊消息已讀的方法的優越性,本發明提供一種應用上述方法的即時通訊消息已讀狀態的處理裝置,該裝置包括通知更新模塊和存儲記錄模塊;所述通知更新模塊用于在消息接收端閱讀消息的同時通知消息發送端更新其閱讀時間點;所述存儲記錄模塊用于在消息發送端完成對消息接收端閱讀時間點的記錄或更新,并據此時間點與消息時間作比較得出消息已讀狀態實現界面的提示更新,使消息發送端直觀的獲知消息已讀或未讀狀態。具體地,通知更新模塊和存儲記錄模塊可應用在即時通訊系統中個人會話或多人會話類型的情景中,通知更新模塊遵循前述步驟A,用于在消息接收端閱讀消息的同時通知消息發送端更新其閱讀時間點;存儲記錄模塊遵循前述步驟B、C,用于消息發送端完成對消息接收端閱讀時間點的記錄或更新,并據此時間點與消息時間作比較得出消息已讀狀態實現界面的提示更新,使消息發送端直觀的獲知消息已讀或未讀狀態。
綜上所述,本發明提供的判斷即時通訊消息已讀的方法及裝置,以消息接收端的消息讀取時間點RTS值為基本控制單位,這種消息已讀或未讀狀態的判斷依據不會因消息數量的增加而成倍增加,有效降低了給系統帶來的存儲、處理壓力,結合消息的發送時間屬性,即可 對消息的已讀未讀狀態進行判斷反饋,執行效果上可實現一對一的個人消息或一對多的多人消息已讀狀態的快速高效判斷,具有較高的靈活性。
以上實施方式僅用于說明本發明,而并非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發明的范疇,本發明的專利保護范圍應由權利要求限定。