專利名稱:使用多個客戶端實例的即時消息的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及即時消息。
背景技術(shù):
即時消息通過通信系統(tǒng)在兩個或更多用戶之間提供實時的、基于文本的通信。為了參與即時消息傳送,每個用戶在通信系統(tǒng)中的用戶終端執(zhí)行客戶端。該客戶端是分配給用戶的一個軟件,當在通信系統(tǒng)中的用戶終端執(zhí)行時,其允許用戶通過通信系統(tǒng)參與即時消息傳送。
用戶能夠通過通信系統(tǒng)進行即時消息傳送會話,其中即時消息在用戶之間進行傳送。即時消息傳送會話可以包括兩個或更多用戶。
作為示例,第一用戶可以與第二用戶進行即時消息傳送會話。第一用戶可以向在其用戶終端執(zhí)行的第一客戶端輸入文本消息并且第一客戶端能夠?qū)⒃撐谋咀鳛榧磿r消息傳送至第二用戶終端處的第二客戶端。第二客戶端能夠?qū)υ摷磿r消息進行解釋并且向第二用戶顯示該文本消息。通過通信系統(tǒng)傳輸即時消息所用的時間足夠短(例如,< 2秒),對于用戶而言就感覺通信像在實時發(fā)生。處于第一和第二用戶終端的客戶端能夠存儲已經(jīng)在會話期間所傳送(并接收)的即時消息。以這種方式,第一客戶端能夠在第一用戶終端保存在第一用戶已經(jīng)參與的會話中發(fā)送的即時消息的聊天歷史。這允許第一用戶在第一用戶終端從之前會話獲取即時消息。類似地,第二客戶端能夠在第二用戶終端保存在第二用戶已經(jīng)參與的會話中發(fā)送的即時消息的聊天歷史。這允許第二用戶在第二用戶終端從之前會話獲取即時消息。
發(fā)明內(nèi)容
對于用戶而言越來越常見的是,使用安裝在不同用戶終端上的不同客戶端實例登錄到它們在即時消息傳送通信系統(tǒng)的賬戶之中。這為用戶在使用即時消息傳送通信系統(tǒng)時提供了更大的靈活性。然而,發(fā)明人已經(jīng)意識到,這額外的靈活性意味著用戶可能無法始終能夠訪問其之前通過通信系統(tǒng)所參與的即時消息傳送會話的聊天歷史。
例如,在現(xiàn)有技術(shù)的系統(tǒng)中,如果用戶使用第一用戶終端處的第一客戶端實例進行即時消息傳送會話,則在該會話期間所傳送(和接收)的即時消息就被存儲在第一用戶終端。當用戶隨后使用在不同用戶終端執(zhí)行的不同客戶端實例時,他就無法對之前會話的即時消息進行訪問。發(fā)明人已經(jīng)意識到這對于用戶使用即時消息傳送通信系統(tǒng)的體驗是不利的。
根據(jù)本發(fā)明的第一方面,提供了一種用于通過通信系統(tǒng)在處于通信系統(tǒng)的第一用戶終端的第一用戶和處于通信系統(tǒng)的第二用戶終端的第二用戶之間進行通信的即時消息傳送方法,該方法包括在第一和第二用戶終端之間通過通信系統(tǒng)以雙方向傳送即時消息, 其中該即時消息構(gòu)成第一和第二用戶之間的會話;并且將該會話的每個即時消息存儲在通信系統(tǒng)的服務(wù)器處的存儲部件中,其中可從通信系統(tǒng)的第三用戶終端訪問該服務(wù)器以使得第一用戶能夠在第三用戶終端從該存儲獲取該會話的每個即時消息。
因此提供了一種用于將會話的每個即時消息存儲在通信系統(tǒng)中服務(wù)器上的方法。 針對用戶的完整聊天歷史(即來自用戶在通信系統(tǒng)中所參與的每個會話的每個即時消息) 可以被存儲在服務(wù)器。由于該服務(wù)器可從通信系統(tǒng)中的其它用戶終端進行訪問,因此用戶隨后能夠使用通信系統(tǒng)中的另一用戶終端并且仍然能夠訪問用戶之前在通信系統(tǒng)中所參與的會話的每個即時消息。這意味著能夠由在會話中的消息被發(fā)送/接收時離線的其它客戶端實例來接收完整的聊天歷史。
在該方法的優(yōu)選實施例中,該方法進一步包括從第一用戶終端向服務(wù)器傳送會話的讀取狀態(tài)消息(或“消耗范圍消息(consumption horizon message)”),所述讀取狀態(tài)消息(或“消耗范圍消息”)指示已經(jīng)向第一用戶顯示了會話中的哪些即時消息;并且將該讀取狀態(tài)消息存儲在存儲部件之中。此外,優(yōu)選地,該方法進一步包括第一用戶在第三用戶終端從存儲部件獲取會話的至少一個即時消息。優(yōu)選地,該方法進一步包括將會話的讀取狀態(tài)消息(或“消耗范圍消息”)從服務(wù)器傳送至第三用戶終端,以使得能夠在第三用戶終端確定已經(jīng)向第一用戶顯示了該會話的哪些即時消息。消耗范圍消息可以連同會話的即時消息一起存儲在服務(wù)器,以使得該會話的每個即時消息的讀取狀態(tài)都能夠跨多個客戶端實例而同步。這意味著第一用戶能夠在第三用戶終端獲取會話的即時消息,并且第三用戶終端能夠以第一用戶能夠確定會話的哪些即時消息已經(jīng)對其進行過顯示(即使它們是在他使用例如第一用戶終端的另一用戶終端的另一客戶端實例時對他進行過顯示)的方式向第一用戶顯示即時消息??梢哉J為讀取狀態(tài)信息指示會話的哪些即時消息已經(jīng)被第一用戶所讀取。即時消息可以在客戶端被接收而并不向用戶進行顯示,在這樣的情況下,讀取狀態(tài)消息將并不指示即時消息已經(jīng)向用戶進行過顯示。例如,如果用戶在接收到與另一個會話相關(guān)的即時消息時正在觀看一個會話,則即時消息可能在客戶端被接收而并不向用戶進行顯示,該即時消息在用戶選擇了其它會話并且該即時消息得以被顯示之前將不會(使用讀取狀態(tài)消息)被標記為已讀。類似地,在用戶在相同會話中接收到多個即時消息,但是用戶沒有下翻以觀看即時消息的情況下,沒有被顯示的即時消息將不會被讀取狀態(tài)消息標記為已讀。
會話的即時消息可以經(jīng)由服務(wù)器在第一和第二用戶終端之間傳送。會話的即時消息可以在通信系統(tǒng)上的點對點路徑上在第一和第二用戶終端之間 傳送。通信系統(tǒng)上的點對點路徑是并不經(jīng)過服務(wù)器的路徑。在優(yōu)選實施例中,會話的每個即時消息經(jīng)由服務(wù)器并且在通信系統(tǒng)上的點對點路徑上進行傳送。這確保了即時消息的可靠傳遞并且允許即時消息被傳遞至不同目的地,例如傳送至諸如僅能夠直接接收即時消息(即在點對點路徑上)的舊版本客戶端的客戶端實例以及傳送至諸如僅能夠從服務(wù)器接收即時消息的瘦客戶端的客戶端實例。在即時消息除了在點對點路徑上發(fā)送之外還經(jīng)由服務(wù)器發(fā)送的實施例中,即時消息即使在用戶的用戶終端上的客戶端僅能夠連接至服務(wù)器或者會話中其它用戶的客戶端二者之一的情況下也將被傳遞至該客戶端。
在可替換實施例中,會話的即時消息僅經(jīng)由服務(wù)器發(fā)送而并不在點對點路徑上發(fā)送。
根據(jù)本發(fā)明的第二方面,提供了一種用于在第一用戶和第二用戶之間提供即時消息傳送的通信系統(tǒng),該通信系統(tǒng)包括可由第一用戶所使用的第一用戶終端;可由第二用戶所使用的第二用戶終端;可由第三用戶所使用的第三用戶終端;以及包括用于即時消息的存儲部件的服務(wù)器,其中該通信系統(tǒng)被配置為在第一和第二用戶終端之間以雙方向傳送即時消息,其中該即時消息構(gòu)成第一和第二用戶之間的會話;并且將該會話的每個即時消息存儲在服務(wù)器處的存儲部件中,并且其中該服務(wù)器可從第三用戶終端進行訪問以使得第一用戶能夠在第三用戶終端從該存儲部件獲取會話的每個即時消息。
優(yōu)選實施例的方法和通信系統(tǒng)有利地允許在遍布通信系統(tǒng)的不同客戶端實例之間同步聊天歷史并且同步消息讀取狀態(tài)。
為了更好地理解本發(fā)明并且示出其可以如何生效,現(xiàn)在將通過示例參考附圖,其中圖1示出了根據(jù)優(yōu)選實施例的通信網(wǎng)絡(luò);圖2示出了根據(jù)優(yōu)選實施例的用戶終端的示意圖;圖3示出了根據(jù)優(yōu)選實施例的即時消息傳送方法的流程圖;圖4圖示了根據(jù)優(yōu)選實施例的從第一客戶端向第二客戶端傳送即時消息的方法;和圖5示出了根據(jù)優(yōu)選實施例的從服務(wù)器獲取聊天歷史的處理的流程圖。
具體實施方式
現(xiàn)在將僅通過示例對本發(fā)明的優(yōu)選實施例進行描述。
首先參考圖1,其圖示了優(yōu)選實施例的基于分組的通信系統(tǒng)100。通信系統(tǒng)的第一用戶(用戶A 102)操作用戶終端104,其被示為連接至通信網(wǎng)絡(luò)106。通信網(wǎng)絡(luò)106例如可以是互聯(lián)網(wǎng)。用戶終端104例如可以是移動電話、個人數(shù)字助理(PDA)、個人計算機(PC) (例如包括WindowsTM、Mac OS 和Linux PC)、游戲設(shè)備或者能夠連接至網(wǎng)絡(luò)106的其它嵌入式設(shè)備。用戶終端104被配置為從設(shè)備的用戶102接收信息并且對其輸出信息。在優(yōu)選實施例中,用戶終端104包括諸如屏幕的顯示器以及諸如小鍵盤、操縱桿、觸摸屏、鍵盤、鼠標、麥克風(fēng)和/或網(wǎng)絡(luò)攝像頭之類的輸入設(shè)備。如圖1所示,用戶終端104連接至網(wǎng)絡(luò)106。
注意到,在可替換實施例中,用戶終端104能夠經(jīng)由圖1中沒有示出的另外的中間網(wǎng)絡(luò)而連接至通信網(wǎng)絡(luò)106。例如,如果用戶終端104是移動設(shè)備,則其能夠經(jīng)由例如GSM 或UMTS網(wǎng)絡(luò)的蜂窩移動網(wǎng)絡(luò)(圖1中未示出)連接至通信網(wǎng)絡(luò)106。
用戶終端104運行由與通信系統(tǒng)100相關(guān)聯(lián)的軟件提供方所提供的通信客戶端 108。通信客戶端108是在用戶終端104中的本地處理器上執(zhí)行的軟件程序,其允許用戶終端104通過網(wǎng)絡(luò)106進行呼叫和即時消息傳送通信會話。
圖1還示出了第二用戶110 (User B),其具有執(zhí)行客戶端114以便以與用戶終端 104執(zhí)行客戶端108而通過網(wǎng)絡(luò)106進行通信相同的方式通過網(wǎng)絡(luò)106進行通信的用戶終端112。因此,用戶A和B (102和110)能夠通過通信網(wǎng)絡(luò)106互相通信。可以有更多用戶連接至通信網(wǎng)絡(luò)106,但是出于簡明僅在圖1中示出了連接至網(wǎng)絡(luò)106的兩個用戶102和 110。圖1還示出了第三用戶終端116,其能夠執(zhí)行客戶端 118以便以與用戶終端104執(zhí)行客戶端108而通過網(wǎng)絡(luò)106進行通信相同的方式通過網(wǎng)絡(luò)106進行通信。圖1還示出了通信系統(tǒng)100中的服務(wù)器120。服務(wù)器120包括用于存儲即時消息的存儲部件(例如,數(shù)據(jù)庫) 122。圖1將服務(wù)器120示為網(wǎng)絡(luò)106中的單個節(jié)點,但是在可替換實施例中,服務(wù)器120可以包括網(wǎng)絡(luò)106中的多個節(jié)點。多個節(jié)點可以被認為是服務(wù)器集群。類似地,圖1將存儲部件122示為單個數(shù)據(jù)庫,而在可替換實施例中,存儲部件122可以包括存在于網(wǎng)絡(luò)106 中的多個服務(wù)器或服務(wù)器集群上的多個數(shù)據(jù)庫。
圖2圖示了其上執(zhí)行客戶端108的用戶終端104的詳細視圖。用戶終端104包括中央處理單元(CPU) 202,與之相連接的有諸如屏幕的顯示器204、諸如小鍵盤(或鍵盤) 206的輸入設(shè)備、諸如操縱桿(或鼠標)208的指示設(shè)備以及用于捕捉視頻數(shù)據(jù)的網(wǎng)絡(luò)攝像頭 225。顯示器204可以包括用于向CPU 202輸入數(shù)據(jù)的觸摸屏。輸出音頻設(shè)備210 (例如, 揚聲器)和輸入音頻設(shè)備212 (例如,麥克風(fēng))連接至CPU 202。顯示器204、小鍵盤206、操縱桿208、網(wǎng)絡(luò)攝像頭225、輸出音頻設(shè)備210和輸入音頻設(shè)備212集成到用戶終端104中。 在可替換的用戶終端中,顯示器204、小鍵盤206、操縱桿208、網(wǎng)絡(luò)攝像頭225、輸出音頻設(shè)備210和輸入音頻設(shè)備212中的一個或多個可以不集成到用戶終端104中并且可以經(jīng)由相應(yīng)接口連接至CPU 202。這樣的接口的一個示例是USB接口。CPU 202連接至諸如調(diào)制解調(diào)器的網(wǎng)絡(luò)接口 226以便通過通信系統(tǒng)100進行通信,從而與通信網(wǎng)絡(luò)106進行通信。網(wǎng)絡(luò)接口 226可以如圖2所示集成到用戶終端104中。在可替換用戶終端中,網(wǎng)絡(luò)接口 226 并不集成到用戶終端104中。
圖2還圖示了在CPU 202上執(zhí)行的操作系統(tǒng)(OS) 214。在OS 214頂端運行的是用于客戶端106的軟件棧216。該軟件棧示出了客戶端協(xié)議層218、客戶端引擎層220和客戶端用戶接口層(UI) 222。每一層負責(zé)具體功能。由于每一層通常與其它兩層進行通信, 因此其被視為配置在如圖2中所示的棧中。操作系統(tǒng)214對計算機的硬件資源進行管理并且對經(jīng)由網(wǎng)絡(luò)接口 226往來于網(wǎng)絡(luò)進行傳送的數(shù)據(jù)進行處置。客戶端軟件的客戶端協(xié)議層 218與操作系統(tǒng)214進行通信并且對通信系統(tǒng)100上的連接進行管理。需要更高級別處理的過程被送至客戶端引擎層220??蛻舳艘?20也與客戶端用戶接口層222進行通信。 客戶端引擎220可以被配置為對客戶端用戶接口層222進行控制以經(jīng)由客戶端的用戶接口向用戶呈現(xiàn)信息并且經(jīng)由用戶接口接收來自用戶的信息。
現(xiàn)在將參考圖3對根據(jù)優(yōu)選實施例的即時消息傳送方法進行描述。在步驟S302 中,用戶102和110進行即時消息傳送會話。作為該即時消息會話傳送的一部分,即時消息跨網(wǎng)絡(luò)106在用戶終端104和112之間進行傳送。即時消息以雙方向傳送,即從第一用戶終端104到第二用戶終端112以及從第二用戶終端112到第一用戶終端104。就該意義而言,即時消息傳送會話是雙路會話。如本領(lǐng)域中已知的,即時消息傳送會話可以包括多于兩個的用戶,并且可以在會話中任意用戶之間傳送即時消息。
會話中的即時消息通過網(wǎng)絡(luò)106進行傳送。在優(yōu)選實施例中,會話的即時消息經(jīng)由服務(wù)器120在第一和第二用戶終端104和112之間進行傳送。如本領(lǐng)域中已知的,會話的即時消息還可以另外在點對點路徑上在第一和第二用戶終端104和112之間進行傳送(SP, 并不經(jīng)由服務(wù)器120或者通信系統(tǒng)100中的任意其它服務(wù)器的路徑)。為了第一用戶102經(jīng)由點對點路徑向第二用戶110傳送即時消息,第一用戶終端104從服務(wù)器(其可以是與服務(wù)器120相同或不同的服務(wù)器)或者網(wǎng)絡(luò)106中的另一節(jié)點獲取第二用戶終端1 12的互聯(lián)網(wǎng)協(xié)議地址(IP地址)。第一用戶終端104隨后能夠?qū)⒓磿r消息直接發(fā)送至第二用戶終端112 的IP地址而并不經(jīng)由服務(wù)器120 (或者通信系統(tǒng)100中的任意其它服務(wù)器)發(fā)送該即時消
在步驟S304中,會話的即時消息被存儲在數(shù)據(jù)庫122中。服務(wù)器120能夠在即時消息經(jīng)由服務(wù)器120在第一和第二用戶終端104和112之間進行傳送時將會話的即時消息的副本存儲在數(shù)據(jù)庫122中。以這種方式,會話的每個即時消息的副本都被存儲在數(shù)據(jù)庫 122中。在會話中從第一用戶終端104向第二用戶終端112傳送的即時消息作為第一用戶 102的郵箱中的已發(fā)送即時消息以及第二用戶110的郵箱中的所接收即時消息而存儲在數(shù)據(jù)庫122中,并且在會話中從第二用戶終端112向第一用戶終端104傳送的即時消息作為第一用戶102的郵箱中的所接收即時消息以及第二用戶110的郵箱中的已發(fā)送即時消息而存儲在數(shù)據(jù)庫122中。
通過在經(jīng)由服務(wù)器120的路徑以及點對點路徑上發(fā)送會話的即時消息,提供了一種在數(shù)據(jù)庫122針對每個用戶存儲完整聊天歷史的方法,以及一種即時消息的可替換傳輸機制,由此允許不同類型的客戶端接收即時消息。
在一些可替換實施例中,會話的即時消息并不經(jīng)由服務(wù)器120而在第一和第二用戶終端104和112之間進行傳送,而是僅經(jīng)由網(wǎng)絡(luò)106上的點對點路徑來傳送。在這些實施例中,當即時消息已經(jīng)在會話中被傳送時,處于傳送用戶終端的客戶端(或者處于接收用戶終端的客戶端)能夠?qū)⑺鶄魉图磿r消息的副本發(fā)送至服務(wù)器120,以使得所傳送的即時消息能夠如以上所描述的被存儲在數(shù)據(jù)庫122中。
在步驟S306,從第一用戶終端104向服務(wù)器120傳送會話的讀取狀態(tài)消息(或“消耗范圍消息”),所述消耗范圍消息指示會話中的哪些即時消息已經(jīng)對第一用戶102進行了顯示。該消耗范圍消息能夠被認為指示了會話的哪些即時消息已經(jīng)被第一用戶102所讀取。該消耗范圍消息在客戶端108在線的同時被定期傳送至服務(wù)器120。消耗范圍消息針對每個會話而生成。消耗范圍消息包括會話ID、會話中要向第一用戶102進行顯示的最新消息的即時消息ID以及第一用戶102的ID。
在步驟S308,消耗范圍消息被存儲在數(shù)據(jù)庫122中。該數(shù)據(jù)庫可以利用針對特定會話以及針對特定用戶所接收的新的消耗范圍消息來替代舊的消耗范圍消息。以這種方式,數(shù)據(jù)庫122能夠針對通信系統(tǒng)100中的每個用戶以及針對每個會話而存儲在服務(wù)器120 所接收的最新的消耗范圍消息。
在第一用戶10 2使用第一用戶終端104加入通信系統(tǒng)100的同時,傳送讀取狀態(tài)消息和存儲讀取狀態(tài)消息的步驟S306和S308被反復(fù)執(zhí)行。
在步驟S308之后,數(shù)據(jù)庫122將存儲即時消息傳送會話中所傳送的即時消息并且還將存儲會話的每個用戶的消耗范圍消息。
圖4圖示了根據(jù)優(yōu)選實施例的從處于第一用戶終端104的客戶端108向處于第二用戶終端112的客戶端114傳送即時消息的方法。圖4示出了通信系統(tǒng)100的各個部件。 特別地,圖4示出了用戶終端104和112的客戶端108和114。圖4還示出了第一和第二連接適配器402和414、第一和第二登記表404和412、談話服務(wù)器406加密服務(wù)器408和數(shù)據(jù)庫122以及客戶端分配器410。第一和第二連接適配器402和414、第一和第二登記表 404和412、談話服務(wù)器406加密服務(wù)器408和數(shù)據(jù)庫122以及客戶端分配器410在服務(wù)器節(jié)點(例如,服務(wù)器120)實施或者在網(wǎng)絡(luò)106中的多個服務(wù)器節(jié)點中實施。第一和第二登記表404和412可以在通信系統(tǒng)100中被實施為一個單一登記表或者分離的登記表。
當?shù)谝挥脩?02在第一用戶終端104登錄到通信系統(tǒng)100中時,第一用戶終端104處的客戶端108具有與第一連接適配器402的持久性連接。類似地,當?shù)诙脩?10在第二用戶終端112登錄到通信系統(tǒng)100中時,第二用戶終端112處的客戶端114具有與第二連接適配器414的持久性連接。這使得即時消息能夠在任意時刻被推送至客戶端108和 114。這還使得能夠使用連接適配器402和414以及傳輸控制協(xié)議(TCP)連接的標識對客戶端108和114進行尋址。
圖4中被標記為I至15的箭頭示出了如以下所描述的從處于第一用戶終端104 的客戶端108向處于第二用戶終端112的客戶端114傳送即時消息的方法中的步驟。
在步驟1,客戶端108向連接適配器402發(fā)送即時消息。連接適配器402在該配置中被用作向客戶端108提供各種后端服務(wù)的前端服務(wù)器。該即時消息包括向連接適配器 402指示該消息為即時消息的服務(wù)ID。
在步驟2,連接適配器402針對談話服務(wù)器406在通信系統(tǒng)100中的地址查詢登記表404。在步驟3,登記表404向連接適配器402返回談話服務(wù)器406的地址。
在步驟4,連接適配器402 (連同諸如時間標簽以及第一用戶102和第二用戶110 的標識之類的元數(shù)據(jù)一起)向談話服務(wù)器406提供該即時消息。
在步驟5,談話服務(wù)器406將該即時消息發(fā)送至加密服務(wù)器408。加密服務(wù)器408 對該即時消息進行加密并且在步驟6中將經(jīng)加密的即時消息返回給談話服務(wù)器406。
在步驟7,談話服務(wù)器406將經(jīng)加密的即時消息傳送至數(shù)據(jù)庫122以便存儲于其上。該即時消息作為用戶102的郵箱中的已發(fā)送消息以及用戶110的郵箱中的所接收消息而被存儲在數(shù)據(jù)庫122上。無論第二用戶110在通信系統(tǒng)100中離線還是在線,都保存該會話的完整聊天歷史。
在步驟8、9和10,從數(shù)據(jù)庫122經(jīng)由談話服務(wù)器406和連接適配器402向第一用戶終端104處的客戶端108傳送響應(yīng)消息,其指示“存儲消息”操作的狀態(tài),即該即時消息是否已經(jīng)被存儲在數(shù)據(jù)庫122。如果客戶端108沒有接收到肯定的響應(yīng)消息,則客戶端108 將在會話中重新發(fā)送該即時消息。
圖4示出了第二用戶110在第一用戶102向第二用戶110的第二用戶終端112傳送即時消息時在線的情形。在步驟11,談話服務(wù)器406向客戶端分配器410發(fā)送識別第二用戶110的查詢。該查詢可以包括第二用戶110的身份,其已經(jīng)在步驟4中在談話服務(wù)器 406從連接適配器402所接收、在步驟12,客戶端分配器410查詢客戶端登記表412以確定第二用戶110連接至哪個連接適配器以及第二用戶110在哪個TCP連接上連接至連接適配器服務(wù)器。在步驟13,當?shù)诙脩?10在通信系統(tǒng)100中在線時,則客戶端登記表412利用第二用戶110在網(wǎng)絡(luò)106 中的位置向客戶端分配器410進行回復(fù)。該位置由客戶端114所連接的連接適配器414實例的地址所明確。
在步驟14中, 即時消息從客戶端分配器410傳送至步驟13中所識別的連接適配器414,并且在步驟15,該即時消息通過步驟13中所識別的TCP連接從連接適配器414發(fā)送至第二用戶終端112處的客戶端114。
在圖4所示的方法結(jié)束時,即時消息已經(jīng)從第一用戶終端104處的客戶端108被傳送至第二用戶終端112處的客戶端114。該即時消息還已經(jīng)被存儲在數(shù)據(jù)庫122中。
所要注意的是,如果第二用戶110在意在針對第二用戶110的即時消息從客戶端108傳送時在通信系統(tǒng)中并不在線,則該即時消息被存儲在數(shù)據(jù)庫122中(例如,通過遵循圖4所示的步驟I至10),但是該消息并不立即被傳送至第二用戶終端112。
第一用戶102例如可以開始使用第三用戶終端116。第一用戶102隨后可能想要觀看通過通信系統(tǒng)100的聊天歷史。圖5示出了根據(jù)優(yōu)選實施例的從服務(wù)器120獲取聊天歷史的處理的流程圖。在步驟502,第一用戶使用客戶端118在第三用戶終端116登錄到通信系統(tǒng)100中。
在步驟S504中,從第三用戶終端116向通信系統(tǒng)100中例如服務(wù)器120的服務(wù)器傳送消息更新請求。該消息更新請求包括第一用戶102的ID以及指示客戶端118所接收的最新即時消息的書簽。在與圖4所示相類似的實施方式中,消息更新請求可以從第三用戶終端116傳送至連接適配器,并且該連接適配器可以確定該消息是消息更新請求并且隨后針對服務(wù)器120在網(wǎng)絡(luò)中的位置而查詢登記表。該連接適配器隨后可以將消息更新請求傳送至服務(wù)器120。
其中將消息更新請求傳送至服務(wù)器120的步驟S504可以響應(yīng)于第一用戶102在第三用戶終端116登錄到通信系統(tǒng)100中而執(zhí)行(如圖5所示)。可替換地,其中將消息更新請求傳送至服務(wù)器120的步驟S504可以響應(yīng)于在第三用戶終端116接收到來自第一用戶102的請求而執(zhí)行。
響應(yīng)于在服務(wù)器120接收到消息更新請求,在步驟S506中,服務(wù)器120確定數(shù)據(jù)庫122中所存儲的哪些(如果有的話)即時消息還沒有被傳送至第三用戶終端116處的客戶端118。為此,服務(wù)器120針對用戶102的郵箱中存儲的即時消息連同消息更新請求中所接收的書簽對數(shù)據(jù)庫122進行查詢。服務(wù)器120從數(shù)據(jù)庫122獲取在該書簽所指示的即時消息傳輸之后在會話中所傳送的針對用戶102的任意即時消息。以這種方式,從數(shù)據(jù)庫 122獲取了已經(jīng)在該書簽所指示的時間之后發(fā)送的聊天歷史。如以上所描述的,數(shù)據(jù)庫122 還存儲指示已經(jīng)由用戶102所使用的其它客戶端實例向用戶102顯示了哪些即時消息的消耗范圍消息。與已經(jīng)從數(shù)據(jù)庫122獲取了用戶102的即時消息的會話相關(guān)的針對用戶102 的消耗范圍消息也從數(shù)據(jù)庫122被獲取。`
在步驟S508,服務(wù)器120在步驟S508將從數(shù)據(jù)庫122所獲取的即時消息傳送至第三用戶終端116處的客戶端118。服務(wù)器120還將從數(shù)據(jù)庫122所獲取的消耗范圍消息傳送至第三用戶終端116處的客戶端118。所獲取的即時消息和所獲取的消耗范圍消息的傳送可以經(jīng)由第三用戶終端116處的客戶端118所連接的連接適配器來進行。在即時消息被傳送至第三用戶終端116處的客戶端118之后,該即時消息仍然存儲在數(shù)據(jù)庫122中,以使得該即時消息隨后能夠在需要的情況下再次被獲取。
在步驟S510中,客戶端118向第三用戶終端116處的用戶102顯示從服務(wù)器120 所獲取的即時消息。該即時消息可以以第一用戶能夠確定哪些即時消息在之前已經(jīng)對第一用戶102進行過顯示(即使它們是由另一用戶終端的另一客戶端實例對其進行顯示的)的方式而被顯示給第一用戶102。這通過使用響應(yīng)于消息更新請求而從服務(wù)器120所接收的消耗范圍消息中的信息來實現(xiàn)。
因此,使用以上所描述的方法,包括會話中即時消息的讀取狀態(tài)的聊天歷史可以在用戶的多個客戶端實例上進行同步。在以上所描述的優(yōu)選實施例中,這是通過將會話的即時消息以及針對每個會話和每個用戶的消耗范圍消息存儲在數(shù)據(jù)庫122中所實現(xiàn)的,數(shù)據(jù)庫122由此可被通信系統(tǒng)100中的不同用戶終端所訪問。例如,如以上所描述的,數(shù)據(jù)庫 122處于可由第一、第二和第三用戶終端104、112和116所訪問的服務(wù)器120上,以使得第一用戶102能夠從第一或第三用戶終端104或116訪問數(shù)據(jù)庫122,并且第二用戶110能夠從第二用戶終端112訪問數(shù)據(jù)庫122。
雖然已經(jīng)參考優(yōu)選實施例特別示出并描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將要理解的是,可以在形式和細節(jié)上進行各種改變而并不背離本發(fā)明如所附權(quán)利要求所確定的范圍。
權(quán)利要求
1.一種用于通過通信系統(tǒng)在處于通信系統(tǒng)的第一用戶終端的第一用戶和處于通信系統(tǒng)的第二用戶終端的第二用戶之間進行通信的即時消息傳送方法,該方法包括在第一和第二用戶終端之間通過通信系統(tǒng)以雙方向傳送即時消息,其中該即時消息構(gòu)成第一和第二用戶之間的會話;并且將該會話的每個即時消息存儲在通信系統(tǒng)的服務(wù)器處的存儲部件中,其中可從通信系統(tǒng)的第三用戶終端訪問該服務(wù)器以使得第一用戶能夠在第三用戶終端處從該存儲部件獲取該會話的每個即時消息。
2.根據(jù)權(quán)利要求1的即時消息傳送方法,進一步包括從第一用戶終端向服務(wù)器傳送會話的讀取狀態(tài)消息,所述讀取狀態(tài)消息指示已經(jīng)向第一用戶顯示了會話中的哪些即時消息;并且將該讀取狀態(tài)消息存儲在存儲部件之中。
3.根據(jù)權(quán)利要求2的即時消息傳送方法,其中在第一用戶使用第一用戶終端的同時反復(fù)執(zhí)行所述傳送讀取狀態(tài)消息和存儲讀取狀態(tài)消息的步驟。
4.根據(jù)權(quán)利要求2或3的即時消息傳送方法,其中所述讀取狀態(tài)消息包括(i)會話的標識符;(ii)要向第一用戶顯示的會話的最新即時消息的標識符;和(iii)第一用戶的標識符。
5.根據(jù)之前任一項權(quán)利要求的即時消息傳送方法,進一步包括第一用戶在第三用戶終端從存儲部件獲取會話的至少一個即時消息。
6.根據(jù)權(quán)利要求5的即時消息傳送方法,其中在已經(jīng)從存儲部件獲取會話的至少一個即時消息之后,該會話的每個即時消息仍然存儲在服務(wù)器。
7.根據(jù)權(quán)利要求5或6的即時消息傳送方法,其中第一用戶獲取會話的至少一個即時消息的步驟包括從第三用戶終端向服務(wù)器傳送消息更新請求,該消息更新請求包括指示在第三用戶終端所接收的最新即時消息的書簽指示;確定在該書簽指示所指示的即時消息傳送之后會話中傳送了該會話的哪些即時消息;并且將所確定的即時消息從服務(wù)器傳送至第三用戶終端。
8.根據(jù)權(quán)利要求7的即時消息傳送方法,其中所述從第三用戶終端向服務(wù)器傳送消息更新請求的步驟響應(yīng)于第一用戶使用第三用戶終端登錄到通信系統(tǒng)中而執(zhí)行。
9.根據(jù)權(quán)利要求7或8的即時消息傳送方法,其中該消息更新請求進一步包括第一用戶的標識符。
10.當從屬于權(quán)利要求2至4中任一項時,根據(jù)權(quán)利要求5至9中任一項的即時消息傳送方法進一步包括將會話的讀取狀態(tài)消息從服務(wù)器傳送至第三用戶終端,以使得能夠在第三用戶終端確定已經(jīng)向第一用戶顯示了該會話的哪些即時消息。
11.根據(jù)之前任一項權(quán)利要求的即時消息傳送方法,其中所述通過通信系統(tǒng)傳送即時消息的步驟包括經(jīng)由服務(wù)器在第一和第二用戶終端之間傳送即時消息。
12.根據(jù)權(quán)利要求11的即時消息傳送方法,其中所述通過通信系統(tǒng)傳送即時消息的步驟進一步包括還在通信系統(tǒng)上的點對點路徑上在第一和第二用戶終端之間傳送即時消
13.根據(jù)之前任一項權(quán)利要求的即時消息傳送方法,其中第一客戶端實例在第一用戶終端執(zhí)行,第二客戶端實例在第二用戶終端執(zhí)行,并且第三客戶端實例在第三客戶端執(zhí)行, 以便通過通信系統(tǒng)進行通信。
14.一種用于在第一用戶和第二用戶之間提供即時消息傳送的通信系統(tǒng),該通信系統(tǒng)包括可由第一用戶所使用的第一用戶終端;可由第二用戶所使用的第二用戶終端;可由第三用戶所使用的第三用戶終端;和包括用于即時消息的存儲部件的服務(wù)器,其中該通信系統(tǒng)被配置為在第一和第二用戶終端之間以雙方向傳送即時消息,其中該即時消息構(gòu)成第一和第二用戶之間的會話;并且將該會話的每個即時消息存儲在服務(wù)器處的存儲部件中,并且其中該服務(wù)器可從第三用戶終端進行訪問以使得第一用戶能夠在第三用戶終端處從該存儲部件獲取會話的每個即時消息。
15.根據(jù)權(quán)利要求14的通信系統(tǒng),進一步被配置為從第一用戶終端向服務(wù)器傳送會話的讀取狀態(tài)消息,其中該讀取狀態(tài)消息指示已經(jīng)向第一用戶顯示了會話中的哪些即時消息;并且將該讀取狀態(tài)消息存儲在存儲部件之中。
16.根據(jù)權(quán)利要求14或15的通信系統(tǒng),其中該服務(wù)器在通信系統(tǒng)中的單個服務(wù)器節(jié)點上實施。
17.根據(jù)權(quán)利要求14或15的通信系統(tǒng),其中該服務(wù)器包括通信系統(tǒng)中的多個服務(wù)器節(jié)點。
18.根據(jù)權(quán)利要求14至17中任一項的通信系統(tǒng),其中在會話中從第一用戶終端傳送至第二用戶終端的即時消息作為第一用戶的郵箱中的已發(fā)送即時消息以及第二用戶的郵箱中的所接收即時消息而存儲在該存儲部件中,并且其中在會話中從第二用戶終端向第一用戶終端傳送的即時消息作為第一用戶的郵箱中的所接收即時消息以及第二用戶的郵箱中的已發(fā)送即時消息而存儲在該存儲部件中。
全文摘要
用于在處于通信系統(tǒng)的第一用戶終端的第一用戶和處于通信系統(tǒng)的第二用戶終端的第二用戶之間進行通信的即時消息傳送方法和通信系統(tǒng)。即時消息在第一和第二用戶終端之間通過通信系統(tǒng)以雙方向傳送,其中該即時消息構(gòu)成第一和第二用戶之間的會話。該會話的每個即時消息被存儲在通信系統(tǒng)的服務(wù)器處的存儲部件中,其中可從通信系統(tǒng)的第三用戶終端訪問該服務(wù)器以使得第一用戶能夠在第三用戶終端從該存儲部件獲取該會話的每個即時消息。
文檔編號H04L12/58GK103069755SQ201180042616
公開日2013年4月24日 申請日期2011年8月31日 優(yōu)先權(quán)日2010年9月2日
發(fā)明者V.奧伯勒, A.波托夫 申請人:斯凱普公司