两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

即時(shí)消息閱讀狀態(tài)的記錄方法及裝置與流程

文檔序號(hào):12667201閱讀:262來(lái)源:國(guó)知局
即時(shí)消息閱讀狀態(tài)的記錄方法及裝置與流程
本發(fā)明涉及通訊
技術(shù)領(lǐng)域
,具體涉及一種即時(shí)消息閱讀狀態(tài)的記錄方法及裝置。
背景技術(shù)
:即時(shí)通訊(Instantmessaging,簡(jiǎn)稱(chēng)IM)是一個(gè)終端服務(wù),允許兩人或多人使用網(wǎng)路即時(shí)的傳遞文字訊息、檔案、語(yǔ)音與視頻交流。即時(shí)通訊不同于e-mail,在于它的交談是即時(shí)的,例如常用的QQ、YY語(yǔ)音、飛信等。在使用這些即時(shí)通訊應(yīng)用進(jìn)行通訊時(shí),信息發(fā)送方需要了解信息接收方是否已閱讀過(guò)信息,以防止重要信息被遺漏?,F(xiàn)有技術(shù)中即時(shí)消息閱讀狀態(tài)的記錄方法主要分為以下兩類(lèi):方法1、客戶端記錄方式。信息的每一個(gè)接收方閱讀完消息后,通過(guò)服務(wù)端中轉(zhuǎn),通知信息發(fā)送方,此時(shí)發(fā)送方客戶端在本地設(shè)備中增加記錄,標(biāo)識(shí)信息被誰(shuí)閱讀;方法2、服務(wù)端記錄方式。信息的每一個(gè)接收方閱讀完信息后,通知服務(wù)端,此時(shí)服務(wù)端向數(shù)據(jù)庫(kù)中插入一條記錄,標(biāo)識(shí)該條信息被誰(shuí)閱讀過(guò)。在實(shí)現(xiàn)本發(fā)明實(shí)施例過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題:方法1的缺陷:客戶端重裝后,所有已讀和未讀信息將被清除;不同設(shè)備同一賬戶的已讀和未讀信息均不完整。方法2的缺陷:信息接收人數(shù)非常多的時(shí)候,例如群聊天時(shí),每條信息的接收人數(shù)可能幾十甚至上千。每個(gè)人的閱讀信息都向數(shù)據(jù)庫(kù)中插入一條記錄,一條記錄至少需要存儲(chǔ)一個(gè)閱讀人員的用戶標(biāo)識(shí)和信息標(biāo)識(shí)組成的記錄元素{“user_id”:int64,“message_id”:int64},至少為16字節(jié),隨著接收人數(shù)的增多,將給數(shù)據(jù)庫(kù)帶來(lái)巨大的數(shù)據(jù)寫(xiě)入壓力及信息存儲(chǔ)壓力。技術(shù)實(shí)現(xiàn)要素:鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的即時(shí)消息閱讀狀態(tài)的記錄裝置和相應(yīng)的即時(shí)消息閱讀狀態(tài)的記錄方法。根據(jù)本發(fā)明的一個(gè)方面,提供了一種即時(shí)消息閱讀狀態(tài)的記錄方法,包括:接收發(fā)送端向接收端發(fā)送的消息,為消息生成消息標(biāo)識(shí);根據(jù)接收端的記錄生成第一位圖數(shù)據(jù),存儲(chǔ)消息標(biāo)識(shí)與第一位圖數(shù)據(jù);將消息發(fā)送給接收端;接收接收端返回的消息閱讀通知,根據(jù)消息閱讀通知對(duì)第一位圖數(shù)據(jù)進(jìn)行修改,得到第二位圖數(shù)據(jù);根據(jù)第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。根據(jù)本發(fā)明的另一方面,提供了一種即時(shí)消息閱讀狀態(tài)的記錄裝置,包括:接收模塊,用于接收發(fā)送端向接收端發(fā)送的消息,為消息生成消息標(biāo)識(shí);存儲(chǔ)模塊,用于根據(jù)接收端的記錄生成第一位圖數(shù)據(jù),存儲(chǔ)消息標(biāo)識(shí)與第一位圖數(shù)據(jù);發(fā)送模塊,用于將消息發(fā)送給接收端;修改模塊,用于接收接收端返回的消息閱讀通知,根據(jù)消息閱讀通知對(duì)第一位圖數(shù)據(jù)進(jìn)行修改,得到第二位圖數(shù)據(jù);返回模塊,用于根據(jù)第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。根據(jù)本發(fā)明的即時(shí)消息閱讀狀態(tài)的記錄方法及裝置,在接收到發(fā)送端發(fā)送的消息之后,根據(jù)接收端的記錄生成第一位圖數(shù)據(jù);在接收到接收端返回的消息閱讀通知之后,根據(jù)消息閱讀通知修改第一位圖數(shù)據(jù)得到第二位圖數(shù)據(jù),第二位圖數(shù)據(jù)記錄了即時(shí)消息的閱讀狀態(tài),以便向發(fā)送端返回消息的閱讀狀態(tài)。本發(fā)明利用位圖記錄每個(gè)接收端的閱讀狀態(tài),將每個(gè)接收端的閱讀狀態(tài)的記錄壓縮為1bit,與現(xiàn)有技術(shù)至少占用16字節(jié)的一條記錄相比,大大節(jié)省了數(shù)據(jù)存儲(chǔ)空間,由此解決了給數(shù)據(jù)庫(kù)帶來(lái)巨大的數(shù)據(jù)寫(xiě)入壓力及信息存儲(chǔ)壓力的問(wèn)題。上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。附圖說(shuō)明通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄方法的流程圖;圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄方法的流程圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄裝置的功能框圖;圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄裝置的功能框圖。具體實(shí)施方式下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄方法的流程圖。如圖1所示,本方法包括以下步驟:步驟S101,接收發(fā)送端向接收端發(fā)送的消息,為消息生成消息標(biāo)識(shí)。每次發(fā)送端在發(fā)送消息時(shí),會(huì)將發(fā)送端信息、消息數(shù)據(jù)、接收端信息等數(shù)據(jù)發(fā)送給服務(wù)端,以便于服務(wù)端查詢(xún)相關(guān)數(shù)據(jù)并進(jìn)行即時(shí)消息的轉(zhuǎn)發(fā)。服務(wù)端在接收到發(fā)送端信息、消息數(shù)據(jù)、接收端信息等數(shù)據(jù)后,都會(huì)新生成一條信息記錄,每條信息記錄都有唯一對(duì)應(yīng)的message_id值,即消息標(biāo)識(shí),并將該消息標(biāo)識(shí)返回給發(fā)送端,用于發(fā)送端獲取閱讀狀態(tài)的依據(jù),同時(shí),該消息標(biāo)識(shí)也能用于數(shù)據(jù)表的相關(guān)數(shù)據(jù)查詢(xún)。步驟S102,根據(jù)接收端的記錄生成第一位圖數(shù)據(jù),存儲(chǔ)消息標(biāo)識(shí)與第一位圖數(shù)據(jù)。其中,接收端的記錄記錄有接收端的接收者情況,第一位圖數(shù)據(jù)是和消息標(biāo)識(shí)對(duì)應(yīng)的,每一個(gè)消息標(biāo)識(shí)都會(huì)有一個(gè)唯一與之對(duì)應(yīng)的第一位圖數(shù)據(jù)。具體地,當(dāng)接收端為一個(gè)接收者時(shí),即一對(duì)一形式的私人通訊模式,該情況下,接收者是用戶指定選擇的,所以接收端的記錄記錄了該一個(gè)接收者的數(shù)據(jù),根據(jù)此記錄,服務(wù)端生成的第一位圖數(shù)據(jù)為0x1;當(dāng)接收端包含多個(gè)接收者時(shí),即一對(duì)多形式的通訊模式,該情況下,接收端的記錄中每一條記錄記錄有一個(gè)接收者的數(shù)據(jù),比如接收者對(duì)應(yīng)的序列號(hào)。在生成第一位圖數(shù)據(jù)時(shí),將第一位圖數(shù)據(jù)對(duì)應(yīng)接收者的成員序列號(hào)的位置為1,表示該位置有成員存在。以接收端包含5名接收者為例,5名接收者的記錄中的成員序列號(hào)分別為1、2、3、4、5,則第一位圖數(shù)據(jù)的1至5為均置1,所以生成的第一位圖數(shù)據(jù)為0x1F。將消息標(biāo)識(shí)和與之對(duì)應(yīng)的第一位圖數(shù)據(jù)插入到服務(wù)端的數(shù)據(jù)庫(kù)中。步驟S103,將消息發(fā)送給接收端。服務(wù)端向接收端的所有接收者發(fā)送攜帶消息數(shù)據(jù)和消息標(biāo)識(shí)等信息的消息。步驟S104,接收接收端返回的消息閱讀通知,根據(jù)消息閱讀通知對(duì)第一位圖數(shù)據(jù)進(jìn)行修改,得到第二位圖數(shù)據(jù)。接收端接收到服務(wù)端發(fā)送的消息后,如果對(duì)應(yīng)的成員閱讀了該條消息,則將消息閱讀通知返回給服務(wù)端,消息閱讀通知包括接收端對(duì)應(yīng)的接收者的成員序列號(hào)和消息標(biāo)識(shí),該成員序列號(hào)是從1開(kāi)始編號(hào)的,且每一個(gè)接收者對(duì)應(yīng)一個(gè)唯一的序列號(hào),不重復(fù)也不間隔,例如接收端有100個(gè)接收者,那么這100個(gè)接收者的序列號(hào)依次為1、2、3……100。假設(shè)服務(wù)端接收到的消息閱讀通知中的接收者的成員序列號(hào)為3,則將第一位圖數(shù)據(jù)的第3位修改為0,因此,原來(lái)5個(gè)接收者的第一位圖數(shù)據(jù)0x1F被修改為0x1B,該修改后的位圖數(shù)據(jù)稱(chēng)為第二位圖數(shù)據(jù);同理,如果只有接收者的成員序列號(hào)為3的成員未返回消息閱讀通知,則第一位圖數(shù)據(jù)只有第3位不修改為0,因此,修改后得到的第二位圖數(shù)據(jù)為0x4。上述將第一位圖數(shù)據(jù)對(duì)應(yīng)位修改為0的操作采用對(duì)應(yīng)位的值與0進(jìn)行按位與操作來(lái)實(shí)現(xiàn)。步驟S105,根據(jù)第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。在對(duì)第一位圖數(shù)據(jù)的對(duì)應(yīng)所有的消息閱讀通知對(duì)應(yīng)的接收者成員序列號(hào)的位都進(jìn)行修改后,得到的位圖數(shù)據(jù)稱(chēng)為第二位圖數(shù)據(jù),該第二位圖數(shù)據(jù)的每一位表示一個(gè)接收者的閱讀狀態(tài),具體地,若為0,表示該位對(duì)應(yīng)的接收者已閱讀消息,若為1,表示該位對(duì)應(yīng)的接收者未閱讀消息。若發(fā)送端想了解接收端的成員的閱讀狀態(tài),則可以通過(guò)把消息標(biāo)識(shí)提供給服務(wù)端,服務(wù)端就能夠根據(jù)消息標(biāo)識(shí)和第二位圖數(shù)據(jù)的對(duì)應(yīng)關(guān)系查詢(xún)第二位圖數(shù)據(jù),并返回該第二位圖數(shù)據(jù)給發(fā)送端,發(fā)送端即可了解到接收端的接收者的閱讀狀態(tài);或者,直接由服務(wù)端將接收端的閱讀狀態(tài)傳遞給發(fā)送端。下面,以接收端為一個(gè)接收者的私人通訊模式為例,說(shuō)明上述步驟S101到步驟S105的具體實(shí)施:在步驟S101中,發(fā)送端A向接收者B發(fā)送消息,服務(wù)端接收到發(fā)送端A信息、消息數(shù)據(jù)、接收者B信息后,為該消息生成消息標(biāo)識(shí)mid1,并且將消息標(biāo)識(shí)mid1返回給發(fā)送端A。在步驟S102中,接收端的記錄有一條接收者B的數(shù)據(jù)記錄,根據(jù)該記錄,服務(wù)端生成的第一位圖數(shù)據(jù)rs1為0x1,并將生成的消息標(biāo)識(shí)mid1和第一位圖數(shù)據(jù)rs1插入數(shù)據(jù)庫(kù)中。在步驟S103中,服務(wù)端向接收者B發(fā)送攜帶消息數(shù)據(jù)和消息標(biāo)識(shí)mid1等信息的消息。在步驟S104中,接收者B接收到消息后,返回消息閱讀通知給服務(wù)端,包括發(fā)送端A信息及消息標(biāo)識(shí)mid1,并將第一位圖數(shù)據(jù)rs1為1的位置為0,記為第二位圖數(shù)據(jù)rs2;如果接收者B未返回消息閱讀通知,則該方法終止。在步驟S105中,在得到第二位圖數(shù)據(jù)rs2后,可直接由服務(wù)端將接收者B的閱讀狀態(tài)返回給發(fā)送端A;或者,發(fā)送端A通過(guò)提供消息標(biāo)識(shí)mid1給服務(wù)端,來(lái)獲取接收者B的閱讀狀態(tài)。上述閱讀狀態(tài)即第二位圖數(shù)據(jù)rs2對(duì)應(yīng)位的0或1值,若為0,則表示消息mid1已被接收者B閱讀,若為1,則表示消息mid1未被接收者B閱讀。根據(jù)本實(shí)施例提供的即時(shí)消息閱讀狀態(tài)的記錄方法,在接收到發(fā)送端發(fā)送的消息之后,根據(jù)接收端的記錄生成第一位圖數(shù)據(jù);在接收到接收端返回的消息閱讀通知之后,根據(jù)消息閱讀通知修改第一位圖數(shù)據(jù)得到第二位圖數(shù)據(jù),第二位圖數(shù)據(jù)記錄了即時(shí)消息的閱讀狀態(tài),以便向發(fā)送端返回消息的閱讀狀態(tài)。本發(fā)明利用位圖記錄每個(gè)接收端的閱讀狀態(tài),將每個(gè)接收端的閱讀狀態(tài)的記錄壓縮為1bit,與現(xiàn)有技術(shù)至少占用16字節(jié)的一條記錄相比,大大節(jié)省了數(shù)據(jù)存儲(chǔ)空間,由此解決了給數(shù)據(jù)庫(kù)帶來(lái)巨大的數(shù)據(jù)寫(xiě)入壓力及信息存儲(chǔ)壓力的問(wèn)題。本發(fā)明通過(guò)位圖來(lái)對(duì)接收端的閱讀狀態(tài)進(jìn)行記錄,將每一個(gè)接收者的記錄壓縮到1bit,解決了給數(shù)據(jù)庫(kù)帶來(lái)巨大的數(shù)據(jù)寫(xiě)入壓力及信息存儲(chǔ)壓力的問(wèn)題,取得了節(jié)省數(shù)據(jù)存儲(chǔ)空間的有益效果。尤其當(dāng)接收端為數(shù)量龐大的群組成員時(shí),采用本發(fā)明進(jìn)行記錄,取得的效果則更為明顯。在對(duì)本發(fā)明的優(yōu)選的實(shí)施例進(jìn)行實(shí)施之前,通過(guò)建立合理的數(shù)據(jù)結(jié)構(gòu)模型來(lái)簡(jiǎn)化實(shí)施過(guò)程的記錄和查詢(xún),本發(fā)明建立的數(shù)據(jù)結(jié)構(gòu)模型有信息數(shù)據(jù)表模型(message_t)、群成員數(shù)據(jù)表模型(qun_member_t)和信息相關(guān)的群成員快照數(shù)據(jù)表模型(qun_snapshot_t)。a.信息數(shù)據(jù)表模型(message_t)主要字段參見(jiàn)表1:表1信息數(shù)據(jù)表message_t主要字段字段名字段類(lèi)型message_idint64read_statusbitmapmessage_id:每次發(fā)送一條消息時(shí),服務(wù)端都會(huì)新生成一條消息記錄,每條消息記錄都有唯一對(duì)應(yīng)的message_id值,即消息標(biāo)識(shí),且該message_id值嚴(yán)格單調(diào)遞增,即:后發(fā)送消息的消息id將比先發(fā)送的值大。read_status:表示該條消息被接收者閱讀的閱讀狀態(tài),當(dāng)read_status位圖值全為0表示全部接收者都已閱讀,否則表示部分接收者已閱讀或無(wú)人閱讀。b.群成員數(shù)據(jù)表模型(qun_member_t)主要字段參見(jiàn)表2:表2群成員數(shù)據(jù)表qun_member_t主要字段字段名字段類(lèi)型qun_idint64member_seqint64qun_id:每當(dāng)用戶新創(chuàng)建群組時(shí),服務(wù)端都將生成一個(gè)新的群組id,即群組標(biāo)識(shí),不同的群組的群組id值嚴(yán)格單調(diào)遞增,即:后創(chuàng)建的群組的群組id將比先創(chuàng)建的群組的群組id值大。member_seq:每當(dāng)向群組中添加新的群組成員時(shí),服務(wù)端都將在群組對(duì)應(yīng)的qun_id下,生成新的member_seq值,即群組成員對(duì)應(yīng)的成員序列號(hào)。相同qun_id值時(shí),member_seq值嚴(yán)格單調(diào)遞增且連續(xù)。即,已有qun_id值為1的群組,第一個(gè)加入該群組的成員member_seq值為1,第二個(gè)加入的則為2,以此類(lèi)推。c.信息相關(guān)的群成員快照數(shù)據(jù)表模型(qun_snapshot_t)主要字段:表3群成員快照數(shù)據(jù)表qun_snapshot_t主要字段qun_id:對(duì)應(yīng)于qun_member_t中的qun_id字段值message_id:對(duì)應(yīng)于message_t中的message_id字段值member_bitmap:群組成員快照位圖,每當(dāng)群組成員有人員增加或減少的變動(dòng)時(shí),都將向該表中添加一條群組成員快照記錄,member_bitmap中位圖第x位為0表示,member_seq值為x的成員還在群組中,否則表示該成員已經(jīng)退群。圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄方法的流程圖。本方法是針對(duì)于接收端為群組成員的情況,即接收端的多個(gè)接收者處于同一個(gè)群組中,如圖2所示,本方法包括以下步驟:步驟S201,接收發(fā)送端向接收端發(fā)送的消息,為消息生成消息標(biāo)識(shí)。服務(wù)端在接收到發(fā)送端發(fā)送的信息數(shù)據(jù)后,都會(huì)新生成一條信息記錄,每條信息記錄都有唯一對(duì)應(yīng)的message_id值,即消息標(biāo)識(shí)。步驟S202,根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄。根據(jù)發(fā)送消息的群組對(duì)應(yīng)的群組標(biāo)識(shí)qun_id值查詢(xún)?nèi)撼蓡T數(shù)據(jù)表qun_member_t,獲取發(fā)送消息時(shí)群組內(nèi)的有效成員的記錄,該有效成員的記錄即未退群的成員記錄。假設(shè)群組標(biāo)識(shí)qun_id值為1,查詢(xún)?nèi)撼蓡T數(shù)據(jù)表qun_member_t獲取的有效成員的記錄為:[{“qun_id”:1,“member_seq”:1},{“qun_id”:1,“member_seq”:2},…,]{“qun_id”:1,“member_seq”:1}為第1條記錄,{“qun_id”:1,“member_seq”:2}為第2條記錄。步驟S203,查詢(xún)?nèi)航M內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)。根據(jù)有效成員的記錄可以得到每一條記錄記錄的有效成員的成員序列號(hào)。例如,記錄{“qun_id”:1,“member_seq”:4}表示的群組內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)為4。步驟S204,將位圖中群組內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第一數(shù)據(jù),得到第一位圖數(shù)據(jù)。其中,第一位圖數(shù)據(jù)的每一位值表示群組內(nèi)的對(duì)應(yīng)成員序列號(hào)的成員是否有效,若為1,則表示對(duì)應(yīng)的成員為有效成員,即該成員仍在群組中;若為0,則表示對(duì)應(yīng)的成員為無(wú)效成員,即該成員已退群。第一位圖數(shù)據(jù)是和消息標(biāo)識(shí)對(duì)應(yīng)的,每一個(gè)消息標(biāo)識(shí)都會(huì)有一個(gè)唯一與之對(duì)應(yīng)的第一位圖數(shù)據(jù)。查詢(xún)到群組內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)member_seq后,將第一位圖數(shù)據(jù)read_status中對(duì)應(yīng)member_seq位設(shè)置為1。例如:第1條記錄記錄的有效成員的成員序列號(hào)msx為3,則將第一位圖數(shù)據(jù)rs1的第3位設(shè)置為1,即rs1為0x4;第2條記錄記錄的有效成員的成員序列號(hào)msx為5,則將第一位圖數(shù)據(jù)rs1的第5位設(shè)置為1,即rs1為0x14……依次將第一位圖數(shù)據(jù)rs1中對(duì)應(yīng)有效成員的成員序列號(hào)msx對(duì)應(yīng)位置的數(shù)據(jù)設(shè)置為第一數(shù)據(jù),得到第一位圖數(shù)據(jù)rs1。由此可見(jiàn),群組成員的記錄生成第一位圖數(shù)據(jù)read_status的具體操作為,根據(jù)群組標(biāo)識(shí)qun_id查詢(xún)?nèi)航M內(nèi)有效成員的記錄,根據(jù)群組內(nèi)有效成員生成第一位圖數(shù)據(jù)。步驟S205,存儲(chǔ)消息標(biāo)識(shí)與第一位圖數(shù)據(jù)。將消息標(biāo)識(shí)message_id和與之對(duì)應(yīng)的第一位圖數(shù)據(jù)read_status插入到服務(wù)端的數(shù)據(jù)庫(kù)中。步驟S206,將消息發(fā)送給接收端。服務(wù)端向接收端的所有群組成員發(fā)送攜帶消息數(shù)據(jù)、成員序列號(hào)member_seq和消息標(biāo)識(shí)message_id等信息的消息。步驟S207,接收群組成員返回的消息閱讀通知。對(duì)于接收端對(duì)應(yīng)的群組成員為有效成員的情況,閱讀狀態(tài)有已讀、未讀兩種。接收端在接收到服務(wù)端發(fā)送的消息后,如果接收端的群組成員閱讀了該條消息,則將消息閱讀通知返回給服務(wù)端。步驟S208,根據(jù)消息閱讀通知確定返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào)。消息閱讀通知包括成員序列號(hào)member_seq和消息標(biāo)識(shí)message_id,即返回消息閱讀通知的成員要將已閱讀的消息對(duì)應(yīng)的消息標(biāo)識(shí)message_id和該成員的成員序列號(hào)member_seq返回給服務(wù)端。根據(jù)返回消息閱讀通知的成員序列號(hào)member_seq即可確定有哪些成員的閱讀狀態(tài)為已讀。步驟S209,將第一位圖數(shù)據(jù)對(duì)應(yīng)的位圖中返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第二數(shù)據(jù),得到第二位圖數(shù)據(jù)。服務(wù)端根據(jù)消息閱讀通知中的成員序列號(hào)member_seq和消息標(biāo)識(shí)message_id的值查詢(xún)信息數(shù)據(jù)表message_t,并將第一位圖數(shù)據(jù)的對(duì)應(yīng)成員序列號(hào)member_seq的位設(shè)置為0,該設(shè)置為0的步驟采用對(duì)應(yīng)位的值與0進(jìn)行與操作來(lái)實(shí)現(xiàn),設(shè)置后的第一位圖數(shù)據(jù)read_status稱(chēng)為第二位圖數(shù)據(jù)read_status。步驟S210,根據(jù)群組標(biāo)識(shí)和消息標(biāo)識(shí)獲取群成員快照位圖數(shù)據(jù),群成員快照位圖數(shù)據(jù)根據(jù)群組內(nèi)的未退群成員與已退群成員的快照記錄而設(shè)定。根據(jù)群組標(biāo)識(shí)qun_id和消息標(biāo)識(shí)message_id查詢(xún)?nèi)撼蓡T快照數(shù)據(jù)表qun_snapshot_t,獲取對(duì)應(yīng)的群成員快照位圖數(shù)據(jù)member_bitmap。其中,群成員快照位圖數(shù)據(jù)member_bitmap根據(jù)群組內(nèi)的未退群成員與已退群成員的快照記錄而設(shè)定,每當(dāng)群組成員有人員增加或減少的變動(dòng)時(shí),都將向群成員快照數(shù)據(jù)表qun_snapshot_t中添加一條快照記錄,群成員快照位圖數(shù)據(jù)member_bitmap中對(duì)應(yīng)成員序列號(hào)member_seq的位的值為0表示成員序列號(hào)member_seq對(duì)應(yīng)的成員還在群組中,否則表示該成員已經(jīng)退群。以群組中原有10位群組成員為例,成員序列號(hào)msx為3和5的兩位群組成員中途退群,則最新的群成員快照位圖數(shù)據(jù)mb1的第3位和第5位的值為1,其余各位的值為0,即群成員快照位圖數(shù)據(jù)mb1為0x14。步驟S211,將群成員快照位圖數(shù)據(jù)和第二位圖數(shù)據(jù)進(jìn)行按位操作,得到用來(lái)記錄群組成員閱讀狀態(tài)的第三位圖數(shù)據(jù);遍歷第三位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。第二位圖數(shù)據(jù)read_status的某一位的值為0有兩種情況:該位對(duì)應(yīng)的群組成員已閱讀消息標(biāo)識(shí)message_id對(duì)應(yīng)的消息和該位對(duì)應(yīng)的群組成員已退群。因此并不能直接確定哪些群組成員已閱讀消息標(biāo)識(shí)message_id對(duì)應(yīng)的消息,本發(fā)明實(shí)施例采用將第二位圖數(shù)據(jù)read_status和群成員快照位圖數(shù)據(jù)member_bitmap按位異或的方法,得到第三位圖數(shù)據(jù)bitmap,這樣就能將第二位圖數(shù)據(jù)read_status中對(duì)應(yīng)已退群成員的位為0的值置為1,因而發(fā)送端就能了解到哪些成員已經(jīng)閱讀了消息標(biāo)識(shí)message_id對(duì)應(yīng)的消息。延用上述群組中原有10位群組成員的例子,群組中的無(wú)效成員為成員序列號(hào)msx為3和5的成員,可得第一位圖數(shù)據(jù)rs1的第3位和第5位置0,其他位置1,因此第一位圖數(shù)據(jù)rs1為0x3EB;假設(shè)返回消息閱讀通知的成員的成員序列號(hào)msx為1、2、4、6、7、9和10,則在第一位圖數(shù)據(jù)rs1的基礎(chǔ)上,將除第1、2、4、6、7、9和10位的值與0進(jìn)行按位與操作,得到修改后的第二位圖數(shù)據(jù)rs2為0x80。該第二位圖數(shù)據(jù)rs2的值只有第8位為1,但實(shí)際上成員序列號(hào)msx為3和5的成員也沒(méi)有返回消息通知,因此采用本實(shí)施例的方法,將第二位圖數(shù)據(jù)rs2和群成員快照位圖數(shù)據(jù)mb1為0x14進(jìn)行按位異或操作,得到第三位圖數(shù)據(jù)mp1為0x94,即第1、2、4、6、7、9和10位的值為0,表示對(duì)應(yīng)成員序列號(hào)msx為1、2、4、6、7、9和10的成員返回了消息閱讀通知。由此可見(jiàn),通過(guò)得到的第三位圖數(shù)據(jù)bitmap的每一位可以得知每一位成員的消息閱讀狀態(tài)。根據(jù)本實(shí)施例提供的即時(shí)消息閱讀狀態(tài)的記錄方法,在接收到發(fā)送端發(fā)送的消息之后,根據(jù)接收端的記錄生成第一位圖數(shù)據(jù);在接收到接收端返回的消息閱讀通知之后,根據(jù)消息閱讀通知修改第一位圖數(shù)據(jù)得到第二位圖數(shù)據(jù),第二位圖數(shù)據(jù)記錄了即時(shí)消息的閱讀狀態(tài),以便向發(fā)送端返回消息的閱讀狀態(tài)。本發(fā)明利用位圖記錄每個(gè)接收端的閱讀狀態(tài),將每個(gè)接收端的閱讀狀態(tài)的記錄壓縮為1bit,與現(xiàn)有技術(shù)至少占用16字節(jié)的一條記錄相比,大大節(jié)省了數(shù)據(jù)存儲(chǔ)空間,由此解決了給數(shù)據(jù)庫(kù)帶來(lái)巨大的數(shù)據(jù)寫(xiě)入壓力及信息存儲(chǔ)壓力的問(wèn)題;通過(guò)獲取群成員快照位圖數(shù)據(jù),確認(rèn)群組中的有效成員,并采用第三位圖數(shù)據(jù)將已退群成員的閱讀狀態(tài)和有效成員的閱讀狀態(tài)區(qū)別標(biāo)識(shí),這樣發(fā)送端就能直接通過(guò)第三位圖數(shù)據(jù)來(lái)判斷已經(jīng)閱讀了消息的成員,無(wú)須參照其他信息,使發(fā)送端獲取閱讀狀態(tài)的方式更為簡(jiǎn)捷。圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄裝置的功能框圖。如圖3所示,本裝置包括:接收模塊310、生成模塊320、發(fā)送模塊330、修改模塊340、返回模塊350。接收模塊310,用于接收發(fā)送端向接收端發(fā)送的消息,為消息生成消息標(biāo)識(shí)。服務(wù)端在接收到發(fā)送端信息、消息數(shù)據(jù)、接收端信息等數(shù)據(jù)后,都會(huì)新生成一條信息記錄,每條信息記錄都有唯一對(duì)應(yīng)的message_id值,即消息標(biāo)識(shí),并將該消息標(biāo)識(shí)返回給發(fā)送端,用于發(fā)送端獲取閱讀狀態(tài)的依據(jù),同時(shí),該消息標(biāo)識(shí)也能用于數(shù)據(jù)表的相關(guān)數(shù)據(jù)查詢(xún)。。生成模塊320,用于根據(jù)接收端的記錄生成第一位圖數(shù)據(jù),存儲(chǔ)消息標(biāo)識(shí)與第一位圖數(shù)據(jù)。其中,接收端的記錄記錄有接收端的接收者情況,第一位圖數(shù)據(jù)是和消息標(biāo)識(shí)對(duì)應(yīng)的,每一個(gè)消息標(biāo)識(shí)都會(huì)有一個(gè)唯一與之對(duì)應(yīng)的第一位圖數(shù)據(jù)。將消息標(biāo)識(shí)和與之對(duì)應(yīng)的第一位圖數(shù)據(jù)插入到服務(wù)端的數(shù)據(jù)庫(kù)中。發(fā)送模塊330,用于將消息發(fā)送給接收端。服務(wù)端向接收端的所有接收者發(fā)送攜帶消息數(shù)據(jù)和消息標(biāo)識(shí)等信息的消息。修改模塊340,用于接收接收端返回的消息閱讀通知,根據(jù)消息閱讀通知對(duì)第一位圖數(shù)據(jù)進(jìn)行修改,得到第二位圖數(shù)據(jù)。服務(wù)端根據(jù)消息閱讀通知中的成員序列號(hào)和消息標(biāo)識(shí)查詢(xún)到第一位圖數(shù)據(jù),并將第一位圖數(shù)據(jù)的對(duì)應(yīng)成員序列號(hào)的位設(shè)置為0,該設(shè)置為0的步驟采用該位的值與0進(jìn)行與操作,修改后的第一位圖數(shù)據(jù)稱(chēng)為第二位圖數(shù)據(jù)。返回模塊350,用于根據(jù)第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。在對(duì)第一位圖數(shù)據(jù)的對(duì)應(yīng)所有的消息閱讀通知對(duì)應(yīng)的接收者成員序列號(hào)的位都進(jìn)行修改后,得到的位圖數(shù)據(jù)稱(chēng)為第二位圖數(shù)據(jù),該第二位圖數(shù)據(jù)的每一位表示一個(gè)接收者的閱讀狀態(tài),具體地,若為0,表示該位對(duì)應(yīng)的接收者已閱讀消息,若為1,表示該位對(duì)應(yīng)的接收者未閱讀消息。根據(jù)本實(shí)施例提供的即時(shí)消息閱讀狀態(tài)的記錄裝置,在接收到發(fā)送端發(fā)送的消息之后,根據(jù)接收端的記錄生成第一位圖數(shù)據(jù);在接收到接收端返回的消息閱讀通知之后,根據(jù)消息閱讀通知修改第一位圖數(shù)據(jù)得到第二位圖數(shù)據(jù),第二位圖數(shù)據(jù)記錄了即時(shí)消息的閱讀狀態(tài),以便向發(fā)送端返回消息的閱讀狀態(tài)。本發(fā)明利用位圖記錄每個(gè)接收端的閱讀狀態(tài),將每個(gè)接收端的閱讀狀態(tài)的記錄壓縮為1bit,與現(xiàn)有技術(shù)至少占用16字節(jié)的一條記錄相比,大大節(jié)省了數(shù)據(jù)存儲(chǔ)空間,由此解決了給數(shù)據(jù)庫(kù)帶來(lái)巨大的數(shù)據(jù)寫(xiě)入壓力及信息存儲(chǔ)壓力的問(wèn)題。圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄裝置的功能框圖。如圖4所示,本裝置在圖3提供的即時(shí)消息閱讀狀態(tài)的記錄裝置的功能框圖的基礎(chǔ)上,還包括:獲取模塊420和操作模塊430,修改模塊340進(jìn)一步包括接收單元411、確定單元412和設(shè)置單元413。接收模塊310,用于接收發(fā)送端向接收端發(fā)送的消息,為消息生成消息標(biāo)識(shí);其中,接收端為群組成員。服務(wù)端在接收到發(fā)送端發(fā)送的信息數(shù)據(jù)后,都會(huì)新生成一條信息記錄,每條信息記錄都有唯一對(duì)應(yīng)的message_id值,即消息標(biāo)識(shí)。生成模塊320,用于根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M成員的記錄,根據(jù)群組成員的記錄生成第一位圖數(shù)據(jù)。根據(jù)發(fā)送消息的群組對(duì)應(yīng)的群組標(biāo)識(shí)qun_id值查詢(xún)?nèi)撼蓡T數(shù)據(jù)表qun_member_t,獲取發(fā)送消息時(shí)群組內(nèi)的有效成員的記錄,該有效成員的記錄即未退群的成員記錄;查詢(xún)到群組內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)member_seq后,將第一位圖數(shù)據(jù)read_status中對(duì)應(yīng)member_seq位設(shè)置為1。由此可見(jiàn),生成模塊320進(jìn)一步用于:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄,根據(jù)群組內(nèi)有效成員生成第一位圖數(shù)據(jù)。具體地,生成模塊320進(jìn)一步用于:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄;查詢(xún)?nèi)航M內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào);將位圖中群組內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第一數(shù)據(jù),得到第一位圖數(shù)據(jù)。將消息標(biāo)識(shí)message_id和與之對(duì)應(yīng)的第一位圖數(shù)據(jù)read_status插入到服務(wù)端的數(shù)據(jù)庫(kù)中。發(fā)送模塊330,將消息發(fā)送給接收端。服務(wù)端向接收端的所有群組成員發(fā)送攜帶消息數(shù)據(jù)、成員序列號(hào)member_seq和消息標(biāo)識(shí)message_id等信息的消息。修改模塊340進(jìn)一步包括接收單元411、確定單元412和設(shè)置單元413。接收單元411,用于接收群組成員返回的消息閱讀通知。對(duì)于接收端對(duì)應(yīng)的群組成員為有效成員的情況,閱讀狀態(tài)有已讀、未讀兩種。接收端在接收到服務(wù)端發(fā)送的消息后,如果接收端的群組成員閱讀了該條消息,則將消息閱讀通知返回給服務(wù)端。確定單元412,用于根據(jù)消息閱讀通知確定返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào)。消息閱讀通知包括成員序列號(hào)member_seq和消息標(biāo)識(shí)message_id,即返回消息閱讀通知的成員要將已閱讀的消息對(duì)應(yīng)的消息標(biāo)識(shí)message_id和該成員的成員序列號(hào)member_seq返回給服務(wù)端。根據(jù)返回消息閱讀通知的成員序列號(hào)member_seq即可確定有哪些成員的閱讀狀態(tài)為已讀。設(shè)置單元413,用于將第一位圖數(shù)據(jù)對(duì)應(yīng)的位圖中返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第二數(shù)據(jù),得到第二位圖數(shù)據(jù)。服務(wù)端根據(jù)消息閱讀通知中的成員序列號(hào)member_seq和消息標(biāo)識(shí)message_id的值查詢(xún)信息數(shù)據(jù)表message_t,并將第一位圖數(shù)據(jù)對(duì)應(yīng)成員序列號(hào)member_seq的位設(shè)置為0,該設(shè)置為0的步驟采用對(duì)應(yīng)位的值與0進(jìn)行與操作來(lái)實(shí)現(xiàn),設(shè)置后的第一位圖數(shù)據(jù)記為read_status,稱(chēng)為第二位圖數(shù)據(jù)read_status。獲取模塊420,用于根據(jù)群組標(biāo)識(shí)和消息標(biāo)識(shí)獲取群組成員快照位圖數(shù)據(jù),群組成員快照位圖數(shù)據(jù)根據(jù)群組內(nèi)的未退群成員與已退群成員的快照記錄而設(shè)定。根據(jù)群組標(biāo)識(shí)qun_id和消息標(biāo)識(shí)message_id查詢(xún)?nèi)撼蓡T快照數(shù)據(jù)表qun_snapshot_t,可以獲取對(duì)應(yīng)的群成員快照位圖數(shù)據(jù)member_bitmap。其中,群成員快照位圖數(shù)據(jù)member_bitmap根據(jù)群組內(nèi)的未退群成員與已退群成員的快照記錄而設(shè)定,每當(dāng)群組成員有人員增加或減少的變動(dòng)時(shí),都將向群成員快照數(shù)據(jù)表qun_snapshot_t中添加一條快照記錄,群成員快照位圖數(shù)據(jù)member_bitmap中對(duì)應(yīng)成員序列號(hào)member_seq的位的值為0表示成員序列號(hào)member_seq對(duì)應(yīng)的成員還在群組中,否則表示該成員已經(jīng)退群。操作模塊430,用于將群組成員快照位圖數(shù)據(jù)和第二位圖數(shù)據(jù)進(jìn)行按位操作,得到用來(lái)記錄群組成員閱讀狀態(tài)的第三位圖數(shù)據(jù)。第二位圖數(shù)據(jù)read_status的某一位的值為0有兩種情況:該位對(duì)應(yīng)的群組成員已閱讀消息標(biāo)識(shí)message_id對(duì)應(yīng)的消息和該位對(duì)應(yīng)的群組成員已退群。因此并不能直接確定哪些群組成員已閱讀消息標(biāo)識(shí)message_id對(duì)應(yīng)的消息,本發(fā)明實(shí)施例采用將第二位圖數(shù)據(jù)read_status和群成員快照位圖數(shù)據(jù)member_bitmap按位異或的方法,得到第三位圖數(shù)據(jù)bitmap,這樣就能將第二位圖數(shù)據(jù)read_status中對(duì)應(yīng)已退群成員的位為0的值置為1,因而發(fā)送端就能了解到哪些成員已經(jīng)閱讀了消息標(biāo)識(shí)message_id對(duì)應(yīng)的消息。返回模塊350,用于遍歷第三位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。第三位圖數(shù)據(jù)bitmap的每一位代表對(duì)應(yīng)成員序列號(hào)的成員的閱讀狀態(tài),將第三位圖數(shù)據(jù)bitmap返回給發(fā)送端,發(fā)送端就能了解到每一個(gè)成員的消息閱讀情況。根據(jù)本實(shí)施例提供的即時(shí)消息閱讀狀態(tài)的記錄裝置,在接收到發(fā)送端發(fā)送的消息之后,根據(jù)接收端的記錄生成第一位圖數(shù)據(jù);在接收到接收端返回的消息閱讀通知之后,根據(jù)消息閱讀通知修改第一位圖數(shù)據(jù)得到第二位圖數(shù)據(jù),第二位圖數(shù)據(jù)記錄了即時(shí)消息的閱讀狀態(tài),以便向發(fā)送端返回消息的閱讀狀態(tài)。本發(fā)明利用位圖記錄每個(gè)接收端的閱讀狀態(tài),將每個(gè)接收端的閱讀狀態(tài)的記錄壓縮為1bit,與現(xiàn)有技術(shù)至少占用16字節(jié)的一條記錄相比,大大節(jié)省了數(shù)據(jù)存儲(chǔ)空間,由此解決了給數(shù)據(jù)庫(kù)帶來(lái)巨大的數(shù)據(jù)寫(xiě)入壓力及信息存儲(chǔ)壓力的問(wèn)題;通過(guò)獲取群成員快照位圖數(shù)據(jù),確認(rèn)群組中的有效成員,并采用第三位圖數(shù)據(jù)將已退群成員的閱讀狀態(tài)和有效成員的閱讀狀態(tài)區(qū)別標(biāo)識(shí),這樣發(fā)送端就能直接通過(guò)第三位圖數(shù)據(jù)來(lái)判斷已經(jīng)閱讀了消息的成員,無(wú)須參照其他信息,使發(fā)送端獲取閱讀狀態(tài)的方式更為簡(jiǎn)捷。。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的即時(shí)消息閱讀狀態(tài)的記錄裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。本發(fā)明公開(kāi)了:A1.一種即時(shí)消息閱讀狀態(tài)的記錄方法,包括:接收發(fā)送端向接收端發(fā)送的消息,為所述消息生成消息標(biāo)識(shí);根據(jù)所述接收端的記錄生成第一位圖數(shù)據(jù),存儲(chǔ)所述消息標(biāo)識(shí)與所述第一位圖數(shù)據(jù);將所述消息發(fā)送給接收端;接收接收端返回的消息閱讀通知,根據(jù)消息閱讀通知對(duì)第一位圖數(shù)據(jù)進(jìn)行修改,得到第二位圖數(shù)據(jù);根據(jù)所述第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。A2.根據(jù)A1所述的方法,所述接收端為群組成員;所述根據(jù)所述接收端的記錄生成第一位圖數(shù)據(jù)具體為:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M成員的記錄,根據(jù)所述群組成員的記錄生成第一位圖數(shù)據(jù)。A3.根據(jù)A2所述的方法,所述根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M成員的記錄,根據(jù)所述群組成員的記錄生成第一位圖數(shù)據(jù)具體為:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄,根據(jù)所述群組內(nèi)有效成員生成第一位圖數(shù)據(jù)。A4.根據(jù)A3所述的方法,所述根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄,根據(jù)所述群組內(nèi)有效成員生成第一位圖數(shù)據(jù)進(jìn)一步包括:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄;查詢(xún)?nèi)航M內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào);將位圖中群組內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第一數(shù)據(jù),得到第一位圖數(shù)據(jù)。A5.根據(jù)A1所述的方法,所述接收接收端返回的消息閱讀通知,根據(jù)消息閱讀通知對(duì)第一位圖數(shù)據(jù)進(jìn)行修改,得到第二位圖數(shù)據(jù)進(jìn)一步包括:接收群組成員返回的消息閱讀通知;根據(jù)消息閱讀通知確定返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào);將第一位圖數(shù)據(jù)對(duì)應(yīng)的位圖中返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第二數(shù)據(jù),得到第二位圖數(shù)據(jù)。A6.根據(jù)A1所述的方法,在所述根據(jù)所述第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)之前,所述方法還包括:根據(jù)群組標(biāo)識(shí)和消息標(biāo)識(shí)獲取群組成員快照位圖數(shù)據(jù),所述群組成員快照位圖數(shù)據(jù)根據(jù)群組內(nèi)的未退群成員與已退群成員的快照記錄而設(shè)定。A7.根據(jù)A6所述的方法,所述根據(jù)所述第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)進(jìn)一步包括:將所述群組成員快照位圖數(shù)據(jù)和所述第二位圖數(shù)據(jù)進(jìn)行按位操作,得到用來(lái)記錄群組成員閱讀狀態(tài)的第三位圖數(shù)據(jù);遍歷所述第三位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。本發(fā)明還公開(kāi)了:B8.一種即時(shí)消息閱讀狀態(tài)的記錄裝置,包括:接收模塊,用于接收發(fā)送端向接收端發(fā)送的消息,為所述消息生成消息標(biāo)識(shí);生成模塊,用于根據(jù)所述接收端的記錄生成第一位圖數(shù)據(jù),存儲(chǔ)所述消息標(biāo)識(shí)與所述第一位圖數(shù)據(jù);發(fā)送模塊,用于將所述消息發(fā)送給接收端;修改模塊,用于接收接收端返回的消息閱讀通知,根據(jù)消息閱讀通知對(duì)第一位圖數(shù)據(jù)進(jìn)行修改,得到第二位圖數(shù)據(jù);返回模塊,用于根據(jù)所述第二位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。B9.根據(jù)B8所述的裝置,所述接收端為群組成員;所述生成模塊進(jìn)一步用于:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M成員的記錄,根據(jù)所述群組成員的記錄生成第一位圖數(shù)據(jù)。B10.根據(jù)B9所述的裝置,所述生成模塊進(jìn)一步用于:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄,根據(jù)所述群組內(nèi)有效成員生成第一位圖數(shù)據(jù)。B11.根據(jù)B10所述的裝置,所述生成模塊進(jìn)一步用于:根據(jù)群組標(biāo)識(shí)查詢(xún)?nèi)航M內(nèi)有效成員的記錄;查詢(xún)?nèi)航M內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào);將位圖中群組內(nèi)有效成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第一數(shù)據(jù),得到第一位圖數(shù)據(jù)。B12.根據(jù)B8所述的裝置,所述修改模塊進(jìn)一步包括:接收單元,用于接收群組成員返回的消息閱讀通知;確定單元,用于根據(jù)消息閱讀通知確定返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào);設(shè)置單元,用于將第一位圖數(shù)據(jù)對(duì)應(yīng)的位圖中返回消息閱讀通知的群組成員對(duì)應(yīng)的成員序列號(hào)對(duì)應(yīng)的位置的數(shù)據(jù)置為第二數(shù)據(jù),得到第二位圖數(shù)據(jù)。B13.根據(jù)B8所述的裝置,所述裝置進(jìn)一步包括:獲取模塊,用于根據(jù)群組標(biāo)識(shí)和消息標(biāo)識(shí)獲取群組成員快照位圖數(shù)據(jù),所述群組成員快照位圖數(shù)據(jù)根據(jù)群組內(nèi)的未退群成員與已退群成員的快照記錄而設(shè)定。B14.根據(jù)B13所述的裝置,所述裝置進(jìn)一步包括:操作模塊,用于將所述群組成員快照位圖數(shù)據(jù)和所述第二位圖數(shù)據(jù)進(jìn)行按位操作,得到用來(lái)記錄群組成員閱讀狀態(tài)的第三位圖數(shù)據(jù);所述返回模塊進(jìn)一步用于:遍歷所述第三位圖數(shù)據(jù),向發(fā)送端返回消息的閱讀狀態(tài)。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
疏勒县| 宣武区| 罗山县| 栖霞市| 南昌市| 雷山县| 轮台县| 綦江县| 平南县| 抚州市| 绍兴县| 安丘市| 苗栗市| 河东区| 宜章县| 西乌珠穆沁旗| 白水县| 彰化县| 南召县| 邵阳县| 乌兰县| 潼关县| 巩义市| 开平市| 左云县| 资溪县| 拜城县| 泰和县| 肇州县| 汝南县| 钟祥市| 叙永县| 鹤峰县| 都兰县| 吕梁市| 凤翔县| 龙门县| 阿拉善右旗| 东兰县| 仙桃市| 格尔木市|