本發明涉及計算機技術領域,具體而言,本發明涉及一種即時通訊消息的推送方法,及一種即時通訊消息的推送裝置。
背景技術:
隨著即時通信技術的應用日益廣泛,通過IM(Instant Messaging,即時通訊)軟件進行信息溝通已成為人們進行信息交流的一種重要方式。無論是在生活還是工作中,人們都會大量使用IM軟件實現與朋友、同事以及同學、客戶等的交流與溝通,使得IM軟件逐漸成為用戶日常生活中不可缺少的工具之一。因此,用戶對IM軟件的易用性、穩定性、以及安全性等方面都提出了越來越高的要求。由于用戶需求及技術的不斷提高,用戶已經不再局限于在PC客戶端上使用IM軟件,在手機終端、基于web的客戶端、甚至在電視終端也同樣可以使用IM軟件,更好地滿足了用戶日益增長的多場景多終端的IM需求。
使用IM軟件的web的客戶端時,由于IM軟件的web的客戶端依賴瀏覽器的支持,因此,實現過程是非常輕量級的,無須數據庫等存儲軟件,只需要有瀏覽器即可實現方便的即時通信,這就意味著在web客戶端使用IM軟件時產生的用戶消息都存儲在服務器端,用戶只能從服務器獲取消息,用戶在每一次獲取消息時,特別是在獲取歷史消息時,將會給瀏覽器帶來流量和緩存上的壓力。一方面,若用戶在IM軟件的web的客戶端中瀏覽歷史消息時,瀏覽器若因各種不可控因素,如斷電,發生異常中斷,重連IM軟件的web的客戶端后,用戶再次瀏覽歷史消息時,將從頭開始翻找歷史消息,從而給用戶帶來一定的冗余操作;另一方面,若用戶通過非web客戶端登錄IM軟件時,若其中一個會話有多條未讀歷史消息,用戶只讀了其中的部分未讀歷史消息,之后當用戶使用web客戶端登錄IM軟件時,瀏覽器從服務器獲取未讀歷史消息,存在同時獲取到這部分未讀歷史消息中在非web客戶端中已讀取的歷史消息的情況,給瀏覽器增加了不必要的流量和緩存開銷。
技術實現要素:
為克服上述技術問題或者至少部分地解決上述技術問題,特提出以下技術方案:
本發明的實施例提出了一種即時通訊消息的推送方法,包括:
當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式;
若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息;
將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;
當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息。
優選地,將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端,包括:
基于記錄的第二部分歷史消息的歷史消息數量及第二部分歷史消息中最近一次接收到的歷史消息標識,將第二部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;
當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量及第一部分歷史消息中最近一次接收到的歷史消息標識,將第一部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
可選地,該方法還包括:
在用戶登陸網頁客戶端前的最近一次,通過即時通訊軟件的任意客戶端登陸后,將針對用戶的未推送歷史消息依據時間由近及遠的順序依次推送至任意客戶端;
當接收到用戶針對任意客戶端的離線信息時,記錄當前未向該任意客戶端推送的剩余歷史消息作為第一部分歷史消息。
可選地,該方法還包括:
若消息推送方式為全量推送方式,確定與用戶對應的第二未推送歷史消息,第二未推送歷史消息包括未向網頁客戶端推送的全部歷史消息;
將第二未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
可選地,該方法還包括:
當接收到用戶通過即時通訊軟件的非網頁客戶端登陸的上線信息時,確定相應的消息推送方式為全量推送方式;
根據全量推送方式,確定與用戶對應的第三未推送歷史消息,第三未推送歷史消息包括未向該非網頁客戶端推送的全部歷史消息;
將第三未推送歷史消息依據時間由近及遠的順序依次推送至非網頁客戶端;
當接收到用戶針對即時通訊軟件非網頁客戶端的離線信息時,記錄當前未向該非網頁客戶端推送的歷史消息。
優選地,任意客戶端包括網頁客戶端和非網頁客戶端中的任一項;
其中,非網頁客戶端包括移動終端客戶端和PC客戶端中的至少任一項。
本發明的另一實施例提出了一種即時通訊消息的推送裝置,包括:
第一確定模塊,用于當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式;
第二確定模塊,用于若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息;
第一推送模塊,用于將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;
第一記錄模塊,用于當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息。
優選地,第二確定模塊,包括:
第一推送單元,用于基于記錄的第二部分歷史消息的歷史消息數量及第二部分歷史消息中最近一次接收到的歷史消息標識,將第二部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;
第二推送單元,用于當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量及第一部分歷史消息中最近一次接收到的歷史消息標識,將第一部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
可選地,該裝置還包括:
第二推送模塊,用于在用戶登陸網頁客戶端前的最近一次,通過即時通訊軟件的任意客戶端登陸后,將針對用戶的未推送歷史消息依據時間由近及遠的順序依次推送至任意客戶端;
第二記錄模塊,用于當接收到用戶針對任意客戶端的離線信息時,記錄當前未向該任意客戶端推送的剩余歷史消息作為第一部分歷史消息。
可選地,該裝置還包括:
第三確定模塊,用于當接收到用戶通過即時通訊軟件的非網頁客戶端登陸的上線信息時,確定相應的消息推送方式為全量推送方式;
第四確定模塊,用于根據全量推送方式,確定與用戶對應的第三未推送歷史消息,第三未推送歷史消息包括未向該非網頁客戶端推送的全部歷史消息;
第三推送模塊,用于將第三未推送歷史消息依據時間由近及遠的順序依次推送至非網頁客戶端;
第三記錄模塊,用于當接收到用戶針對即時通訊軟件非網頁客戶端的離線信息時,記錄當前未向該非網頁客戶端推送的歷史消息。
本發明的實施例中,提出了一種即時通訊消息的推送方案,在服務器端,當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式,實現了根據用戶不同的消息獲取需求實現不同的消息推送方式;若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對該用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及在該用戶最近離線期間接收到的第二部分歷史消息,將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端,通過余量推送方式,實現了在向即時通訊消息的任意客戶端執行消息推送后,僅向網頁客戶端推送剩余未推送的部分歷史消息,避免了用戶重復獲取已推送的歷史消息的情況,避免產生不必要的流量和緩存開銷,降低了輕量級網頁客戶端的數據傳輸處理壓力;同時提高了即時通訊軟件的運行效率,提高了用戶的使用體驗;當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息,在后續用戶登錄任意客戶端時,服務器可通過余量推送方式向用戶推送歷史消息,為避免向用戶重復推送已推送的歷史消息提供了重要的前提保障。
本發明附加的方面和優點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本發明中一個實施例的即時通訊消息的推送方法的流程圖;
圖2為本發明中一個優選實施例的即時通訊消息的推送方法的流程圖;
圖3為本發明中另一實施例的即時通訊消息的推送裝置的結構示意圖;
圖4為本發明中另一優選實施例的即時通訊消息的推送裝置的結構示意圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發明,而不能解釋為對本發明的限制。
本技術領域技術人員可以理解,除非特意聲明,這里使用的單數形式“一”、“一個”、“所述”和“該”也可包括復數形式。應該進一步理解的是,本發明的說明書中使用的措辭“包括”是指存在所述特征、整數、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關聯的列出項的全部或任一單元和全部組合。
本技術領域技術人員可以理解,除非另外定義,這里使用的所有術語(包括技術術語和科學術語),具有與本發明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現有技術的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
圖1為本發明中一個實施例的即時通訊消息的推送方法的流程圖。
本發明的實施例中,各步驟所執行的內容概述如下:步驟S110:當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式;步驟S120:若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息;步驟S130:將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;步驟S140:當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息。
本發明的實施例中,提出了一種即時通訊消息的推送方法,在服務器端,當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式,實現了根據用戶不同的消息獲取需求實現不同的消息推送方式;若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對該用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及在該用戶最近離線期間接收到的第二部分歷史消息,將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端,通過余量推送方式,實現了在向即時通訊消息的任意客戶端執行消息推送后,僅向網頁客戶端推送剩余未推送的部分歷史消息,避免了用戶重復獲取已推送的歷史消息的情況,避免產生不必要的流量和緩存開銷,降低了輕量級網頁客戶端的數據傳輸處理壓力;同時提高了即時通訊軟件的運行效率,提高了用戶的使用體驗;當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息,在后續用戶登錄任意客戶端時,服務器可通過余量推送方式向用戶推送歷史消息,為避免向用戶重復推送已推送的歷史消息提供了重要的前提保障。以下針對各個步驟的具體實現做進一步的說明:
步驟S110:當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式。
具體地,當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定針對該用戶登錄的網頁客戶端相應的消息推送方式。
其中,消息推送方式包括全量推送方式和余量推送方式。
例如,用戶A通過即時通訊軟件的網頁客戶端登陸上線時,向服務器發送相應的上線通知消息以及消息獲取的方式,如為余量獲取方式,當服務器接收到用戶A通過網頁客戶端登錄的即時通訊軟件發送的上線通知消息以及消息獲取方式為余量獲取方式時,確定針對用戶A登錄的網頁客戶端相應的消息推送方式為余量推送方式。
另外,可針對不同類型的即時通訊軟件的客戶端預定不同的消息推送方式,如當用戶通過網頁客戶端登陸時,確定相應的消息推送方式為余量推送方式;當用戶通過PC客戶端登陸時,確定相應的消息推送方式為全量推送方式。服務器接收到用戶通過即時通訊軟件的客戶端登陸的上線信息時,基于登陸的客戶端類型確定相應的消息推送方式。
步驟S120:若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息。
具體地,若確定針對用戶登錄的網頁客戶端相應的消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端,包括網頁客戶端和非網頁客戶端,執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息。
其中,任意客戶端包括網頁客戶端和非網頁客戶端。
其中,非網頁客戶端包括移動終端客戶端和PC客戶端。
例如,用戶A通過即時通訊軟件的網頁客戶端登陸上線時,若確定針對用戶A登錄的網頁客戶端相應的消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息;用戶A在本次登錄前的最近一次登錄即時通訊軟件的客戶端為PC客戶端,第一未推送歷史消息包括最近一次針對用戶A向該PC客戶端,執行消息推送后剩余未推送的第一部分歷史消息以及用戶A在退出該PC客戶端之后、本次通過網頁客戶端登陸之前的離線期間接收到的第二部分歷史消息。
優選地,步驟S120具體包括步驟S121和步驟S122;步驟S121:基于記錄的第二部分歷史消息的歷史消息數量及第二部分歷史消息中最近一次接收到的歷史消息標識,將第二部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;步驟S122:當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量及第一部分歷史消息中最近一次接收到的歷史消息標識,將第一部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
例如,用戶A在2016年06月25日13:00時通過即時通訊軟件的手機客戶端Client1登陸上線,隨后用戶A在2016年06月25日13:30時在Client1退出登陸,服務器檢測到用戶A在Client1退出登陸時,開始接收針對當前處于離線狀態的用戶A的離線歷史消息,并將離線歷史消息按照接收時的時間順序存儲至數據庫中,且同時記錄接收到的離線歷史消息的數量,當檢測到用戶A在2016年06月25日14:00時通過即時通訊軟件的網頁客戶端Client2登陸上線時,記錄下用戶A在2016年06月25日13:30時至14:00時的離線期間內,接收到的離線歷史消息的總數量為100條,該離線期間距離14:00時最近一次接收到的離線歷史消息的標識信息為“MSG200”,并將該離線期間接收到的全部離線歷史消息作為第二部分歷史消息;隨后,根據已確定的針對用戶A登錄的網頁客戶端Client2相應的消息推送方式為余量推送方式,首先,根據標識信息“MSG200”以及第二部分歷史消息的離線歷史消息的數量100條,從數據庫中確定標識信息為“MSG200”的離線歷史消息,并依據時間由近及遠的順序提取從“MSG200”開始的100條離線歷史消息,將該100條離線歷史消息確定為第二部分歷史消息,并將第二部分歷史消息依據時間由近及遠的順序依次推送至Client2,例如,將“MSG200”至“MSG101”的離線歷史消息依次推送至Client2;當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量20條及第一部分歷史消息中最近一次接收到的歷史消息標識“MSG40”,將第一部分歷史消息依據時間由近及遠的順序依次推送至Client2。
優選的,該方法還包括步驟S150和步驟S160;步驟S150:在用戶登陸網頁客戶端前的最近一次,通過即時通訊軟件的任意客戶端登陸后,將針對用戶的未推送歷史消息依據時間由近及遠的順序依次推送至任意客戶端;步驟S160:當接收到用戶針對任意客戶端的離線信息時,記錄當前未向該任意客戶端推送的剩余歷史消息作為第一部分歷史消息。
例如,在用戶登陸網頁客戶端Client2前的最近一次登錄為,用戶A在2016年06月25日13:00時通過即時通訊軟件的手機客戶端Client1登陸上線,服務器可確定用戶A在本次登錄前的離線消息數量為50條,以及距離本次登錄最近一次接收到的離線歷史消息的標識信息,如“MSG70”,隨后服務器依據離線歷史消息的標識信息“MSG70”以及離線消息數量50條,從數據庫中提取到離線歷史消息,并依據時間由近及遠的順序依次將“MSG70”開始的前50條離線歷史消息推送至手機客戶端Client1;若用戶A在2016年06月25日13:30時在Client1退出登錄即時通訊軟件,此時服務器還未將全部歷史消息推送至Client1,接收到用戶A針對Client1的離線信息時,根據服務器的消息推送記錄,可確定未推送的剩余歷史消息的數量為20條,且最近一條未推送的剩余歷史消息的標識信息為“MSG40”,將從標識信息“MSG40”開始的前20條歷史消息作為第一部分歷史消息,并記錄下第一部分歷史消息的消息數量為20,最近一次接收到的歷史消息的標識信息為“MSG40”。隨后,依據上例中方式,當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量20條及第一部分歷史消息中最近一次接收到的歷史消息標識“MSG40”,將第一部分歷史消息依據時間由近及遠的順序依次推送至Client2。
步驟S130:將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
例如,用戶A在2016年06月25日13:00時通過即時通訊軟件的手機客戶端Client1登陸上線,隨后用戶A在2016年06月25日13:30時在Client1退出登陸,記錄下第一部分歷史消息,第一部分歷史消息的消息數量為20,及第一部分歷史消息中最近一次接收到的歷史消息標識“MSG40”;隨后用戶A在2016年06月25日14:00時通過即時通訊軟件的網頁客戶端Client2登陸上線,記錄下第二部分歷史消息,第二部分歷史消息的消息數量為100,以及第二部分歷史消息中最近一次接收到的離線歷史消息的標識信息為“MSG200”;隨后服務器將第二部分歷史消息依據時間由近及遠的順序依次推送至Client2,例如,將“MSG200”至“MSG101”的離線歷史消息依次推送至Client2;隨后將第一部分歷史消息依據時間由遠即近將“MSG40”開始的前20條離線歷史消息推送至Client2。
步驟S140:當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息。
例如,接上例,當接收到用戶A針對即時通訊軟件的網頁客戶端Client2的離線信息時,記錄當前未向Client2推送的歷史消息,具體包括記錄下未推送的歷史消息數量10條,以及未推送的歷史消息數量中最近一次接收到的歷史消息的標識信息為“MSG30”。
在一優選實施例中,如圖2所示,該方法包括步驟S2010、步驟S2020、步驟S2030、步驟S2040、步驟S2050和步驟S2060;步驟S2010:當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式;步驟S2020:若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息;步驟S2030:將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;步驟S2040:當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息;步驟S2050:若消息推送方式為全量推送方式,確定與用戶對應的第二未推送歷史消息,第二未推送歷史消息包括未向網頁客戶端推送的全部歷史消息;步驟S2060:將第二未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
其中,本優選實施例中步驟S2010、步驟S2020、步驟S2030和步驟S2040中執行的操作與圖1所示的步驟S110、步驟S120、步驟S130和步驟S140中執行的操作相同或相似,在此不再贅述。
例如,用戶A在2016年06月25日15:00時通過即時通訊軟件的網頁客戶端Client2登陸上線時,向服務器發送相應的上線通知信息以及消息獲取的方式為全量獲取方式,確定與用戶A對應的第二未推送歷史消息,第二未推送歷史消息包括未向網頁客戶端推送的全部歷史消息;用戶A在上一次通過非網絡客戶端登錄即時通訊軟件的在線時間為2016年06月25日13:00時至13:30時通過手機客戶端Client1登陸即時通訊軟件,因此,可確定與用戶A對應的第二未推送歷史消息為用戶A在2016年06月25日13:00時至15:00時的期間的歷史消息;隨后將第二未推送歷史消息依據時間由近及遠的順序,即2016年06月25日15:00時至13:00時的順序依次推送至Client2。
在一優選實施例中,參考圖2,該方法還包括步驟S2070、步驟S2080、步驟S2090和步驟S2100;步驟S2070:當接收到用戶通過即時通訊軟件的非網頁客戶端登陸的上線信息時,確定相應的消息推送方式為全量推送方式;步驟S2080:根據全量推送方式,確定與用戶對應的第三未推送歷史消息,第三未推送歷史消息包括未向該非網頁客戶端推送的全部歷史消息;步驟S2090:將第三未推送歷史消息依據時間由近及遠的順序依次推送至非網頁客戶端;步驟S2100:當接收到用戶針對即時通訊軟件非網頁客戶端的離線信息時,記錄當前未向該非網頁客戶端推送的歷史消息。
例如,用戶A在2016年06月25日15:00時通過即時通訊軟件的PC客戶端Client3登陸上線時,向服務器發送相應的上線通知信息以及消息獲取的方式為全量獲取方式,確定與用戶A對應的第三未推送歷史消息,第三未推送歷史消息包括未向Client3推送的全部歷史消息;用戶A在上一次通過Client3登錄即時通訊軟件的在線時間為2016年06月25日12:00時至12:30時,因此,可確定與用戶A對應的第三未推送歷史消息為用戶A在2016年06月25日12:30時至15:00時的期間的全部歷史消息;隨后將第三未推送歷史消息依據時間由近及遠的順序,即2016年06月25日15:00時至12:30時的順序依次推送至Client3。
圖3為本發明中另一實施例的即時通訊消息的推送裝置的結構示意圖。
本發明的實施例中,各模塊所執行的內容概述如下:第一確定模塊310當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式;第二確定模塊320若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息;第一推送模塊330將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;第一記錄模塊340當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息。
本發明的實施例中,提出了一種即時通訊消息的推送裝置,在服務器端,當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式,實現了根據用戶不同的消息獲取需求實現不同的消息推送方式;若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對該用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及在該用戶最近離線期間接收到的第二部分歷史消息,將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端,通過余量推送方式,實現了在向即時通訊消息的任意客戶端執行消息推送后,僅向網頁客戶端推送剩余未推送的部分歷史消息,避免了用戶重復獲取已推送的歷史消息的情況,避免產生不必要的流量和緩存開銷,降低了輕量級網頁客戶端的數據傳輸處理壓力;同時提高了即時通訊軟件的運行效率,提高了用戶的使用體驗;當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息,在后續用戶登錄任意客戶端時,服務器可通過余量推送方式向用戶推送歷史消息,為避免向用戶重復推送已推送的歷史消息提供了重要的前提保障。以下針對各個模塊的具體實現做進一步的說明:
第一確定模塊310當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式。
具體地,當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定針對該用戶登錄的網頁客戶端相應的消息推送方式。
其中,消息推送方式包括全量推送方式和余量推送方式。
例如,用戶A通過即時通訊軟件的網頁客戶端登陸上線時,向服務器發送相應的上線通知消息以及消息獲取的方式,如為余量獲取方式,當服務器接收到用戶A通過網頁客戶端登錄的即時通訊軟件發送的上線通知消息以及消息獲取方式為余量獲取方式時,確定針對用戶A登錄的網頁客戶端相應的消息推送方式為余量推送方式。
另外,可針對不同類型的即時通訊軟件的客戶端預定不同的消息推送方式,如當用戶通過網頁客戶端登陸時,確定相應的消息推送方式為余量推送方式;當用戶通過PC客戶端登陸時,確定相應的消息推送方式為全量推送方式。服務器接收到用戶通過即時通訊軟件的客戶端登陸的上線信息時,基于登陸的客戶端類型確定相應的消息推送方式。
第二確定模塊320若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息。
具體地,若確定針對用戶登錄的網頁客戶端相應的消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端,包括網頁客戶端和非網頁客戶端,執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息。
其中,任意客戶端包括網頁客戶端和非網頁客戶端。
其中,非網頁客戶端包括移動終端客戶端和PC客戶端。
例如,用戶A通過即時通訊軟件的網頁客戶端登陸上線時,若確定針對用戶A登錄的網頁客戶端相應的消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息;用戶A在本次登錄前的最近一次登錄即時通訊軟件的客戶端為PC客戶端,第一未推送歷史消息包括最近一次針對用戶A向該PC客戶端,執行消息推送后剩余未推送的第一部分歷史消息以及用戶A在退出該PC客戶端之后、本次通過網頁客戶端登陸之前的離線期間接收到的第二部分歷史消息。
優選地,第二確定模塊320具體包括第一推送單元和第二推送單元;第一推送單元基于記錄的第二部分歷史消息的歷史消息數量及第二部分歷史消息中最近一次接收到的歷史消息標識,將第二部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;第二推送單元當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量及第一部分歷史消息中最近一次接收到的歷史消息標識,將第一部分歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
例如,用戶A在2016年06月25日13:00時通過即時通訊軟件的手機客戶端Client1登陸上線,隨后用戶A在2016年06月25日13:30時在Client1退出登陸,服務器檢測到用戶A在Client1退出登陸時,開始接收針對當前處于離線狀態的用戶A的離線歷史消息,并將離線歷史消息按照接收時的時間順序存儲至數據庫中,且同時記錄接收到的離線歷史消息的數量,當檢測到用戶A在2016年06月25日14:00時通過即時通訊軟件的網頁客戶端Client2登陸上線時,記錄下用戶A在2016年06月25日13:30時至14:00時的離線期間內,接收到的離線歷史消息的總數量為100條,該離線期間距離14:00時最近一次接收到的離線歷史消息的標識信息為“MSG200”,并將該離線期間接收到的全部離線歷史消息作為第二部分歷史消息;隨后,根據已確定的針對用戶A登錄的網頁客戶端Client2相應的消息推送方式為余量推送方式,首先,根據標識信息“MSG200”以及第二部分歷史消息的離線歷史消息的數量100條,從數據庫中確定標識信息為“MSG200”的離線歷史消息,并依據時間由近及遠的順序提取從“MSG200”開始的100條離線歷史消息,將該100條離線歷史消息確定為第二部分歷史消息,并將第二部分歷史消息依據時間由近及遠的順序依次推送至Client2,例如,將“MSG200”至“MSG101”的離線歷史消息依次推送至Client2;當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量20條及第一部分歷史消息中最近一次接收到的歷史消息標識“MSG40”,將第一部分歷史消息依據時間由近及遠的順序依次推送至Client2。
優選的,該裝置還包括第四推送模塊和第四記錄模塊;第四推送模塊在用戶登陸網頁客戶端前的最近一次,通過即時通訊軟件的任意客戶端登陸后,將針對用戶的未推送歷史消息依據時間由近及遠的順序依次推送至任意客戶端;第四記錄模塊當接收到用戶針對任意客戶端的離線信息時,記錄當前未向該任意客戶端推送的剩余歷史消息作為第一部分歷史消息。
例如,在用戶登陸網頁客戶端Client2前的最近一次登錄為,用戶A在2016年06月25日13:00時通過即時通訊軟件的手機客戶端Client1登陸上線,服務器可確定用戶A在本次登錄前的離線消息數量為50條,以及距離本次登錄最近一次接收到的離線歷史消息的標識信息,如“MSG70”,隨后服務器依據離線歷史消息的標識信息“MSG70”以及離線消息數量50條,從數據庫中提取到離線歷史消息,并依據時間由近及遠的順序依次將“MSG70”開始的前50條離線歷史消息推送至手機客戶端Client1;若用戶A在2016年06月25日13:30時在Client1退出登錄即時通訊軟件,此時服務器還未將全部歷史消息推送至Client1,接收到用戶A針對Client1的離線信息時,根據服務器的消息推送記錄,可確定未推送的剩余歷史消息的數量為20條,且最近一條未推送的剩余歷史消息的標識信息為“MSG40”,將從標識信息“MSG40”開始的前20條歷史消息作為第一部分歷史消息,并記錄下第一部分歷史消息的消息數量為20,最近一次接收到的歷史消息的標識信息為“MSG40”。隨后,依據上例中方式,當第二部分歷史消息推送完成后,基于記錄的第一部分歷史消息的歷史消息數量20條及第一部分歷史消息中最近一次接收到的歷史消息標識“MSG40”,將第一部分歷史消息依據時間由近及遠的順序依次推送至Client2。
第一推送模塊330將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
例如,用戶A在2016年06月25日13:00時通過即時通訊軟件的手機客戶端Client1登陸上線,隨后用戶A在2016年06月25日13:30時在Client1退出登陸,記錄下第一部分歷史消息,第一部分歷史消息的消息數量為20,及第一部分歷史消息中最近一次接收到的歷史消息標識“MSG40”;隨后用戶A在2016年06月25日14:00時通過即時通訊軟件的網頁客戶端Client2登陸上線,記錄下第二部分歷史消息,第二部分歷史消息的消息數量為100,以及第二部分歷史消息中最近一次接收到的離線歷史消息的標識信息為“MSG200”;隨后服務器將第二部分歷史消息依據時間由近及遠的順序依次推送至Client2,例如,將“MSG200”至“MSG101”的離線歷史消息依次推送至Client2;隨后將第一部分歷史消息依據時間由遠即近將“MSG40”開始的前20條離線歷史消息推送至Client2。
第一記錄模塊340當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息。
例如,接上例,當接收到用戶A針對即時通訊軟件的網頁客戶端Client2的離線信息時,記錄當前未向Client2推送的歷史消息,具體包括記錄下未推送的歷史消息數量10條,以及未推送的歷史消息數量中最近一次接收到的歷史消息的標識信息為“MSG30”。
在一優選實施例中,如圖4所示,該裝置包括第一確定模塊4010、第二確定模塊4020、第一推送模塊4030、第一記錄模塊4040、第二推送模塊4050和第二記錄模塊4060;第一確定模塊4010當接收到用戶通過即時通訊軟件的網頁客戶端登陸的上線信息時,確定相應的消息推送方式;第二確定模塊4020若消息推送方式為余量推送方式,則確定與用戶對應的第一未推送歷史消息,第一未推送歷史消息包括最近一次針對用戶向任意客戶端執行消息推送后剩余未推送的第一部分歷史消息以及用戶在其最近離線期間接收到的第二部分歷史消息;第一推送模塊4030將第一未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端;第一記錄模塊4040當接收到用戶針對即時通訊軟件的網頁客戶端的離線信息時,記錄當前未向網頁客戶端推送的歷史消息;第二推送模塊4050若消息推送方式為全量推送方式,確定與用戶對應的第二未推送歷史消息,第二未推送歷史消息包括未向網頁客戶端推送的全部歷史消息;第二記錄模塊4060將第二未推送歷史消息依據時間由近及遠的順序依次推送至網頁客戶端。
其中,本優選實施例中第一確定模塊4010、第二確定模塊4020、第一推送模塊4030和第一記錄模塊4040中執行的操作與圖3所示的第一確定模塊310、第二確定模塊320、第一推送模塊330和第一記錄模塊340中執行的操作相同或相似,在此不再贅述。
例如,用戶A在2016年06月25日15:00時通過即時通訊軟件的網頁客戶端Client2登陸上線時,向服務器發送相應的上線通知信息以及消息獲取的方式為全量獲取方式,確定與用戶A對應的第二未推送歷史消息,第二未推送歷史消息包括未向網頁客戶端推送的全部歷史消息;用戶A在上一次通過非網絡客戶端登錄即時通訊軟件的在線時間為2016年06月25日13:00時至13:30時通過手機客戶端Client1登陸即時通訊軟件,因此,可確定與用戶A對應的第二未推送歷史消息為用戶A在2016年06月25日13:00時至15:00時的期間的歷史消息;隨后將第二未推送歷史消息依據時間由近及遠的順序,即2016年06月25日15:00時至13:00時的順序依次推送至Client2。
在一優選實施例中,參考圖4,該裝置還包括第三確定模塊、第四確定模塊、第三推送模塊和第三記錄模塊;第三確定模塊當接收到用戶通過即時通訊軟件的非網頁客戶端登陸的上線信息時,確定相應的消息推送方式為全量推送方式;第四確定模塊根據全量推送方式,確定與用戶對應的第三未推送歷史消息,第三未推送歷史消息包括未向該非網頁客戶端推送的全部歷史消息;第三推送模塊將第三未推送歷史消息依據時間由近及遠的順序依次推送至非網頁客戶端;第三記錄模塊當接收到用戶針對即時通訊軟件非網頁客戶端的離線信息時,記錄當前未向該非網頁客戶端推送的歷史消息。
例如,用戶A在2016年06月25日15:00時通過即時通訊軟件的PC客戶端Client3登陸上線時,向服務器發送相應的上線通知信息以及消息獲取的方式為全量獲取方式,確定與用戶A對應的第三未推送歷史消息,第三未推送歷史消息包括未向Client3推送的全部歷史消息;用戶A在上一次通過Client3登錄即時通訊軟件的在線時間為2016年06月25日12:00時至12:30時,因此,可確定與用戶A對應的第三未推送歷史消息為用戶A在2016年06月25日12:30時至15:00時的期間的全部歷史消息;隨后將第三未推送歷史消息依據時間由近及遠的順序,即2016年06月25日15:00時至12:30時的順序依次推送至Client3。
本技術領域技術人員可以理解,本發明包括涉及用于執行本申請中所述操作中的一項或多項的設備。這些設備可以為所需的目的而專門設計和制造,或者也可以包括通用計算機中的已知設備。這些設備具有存儲在其內的計算機程序,這些計算機程序選擇性地激活或重構。這樣的計算機程序可以被存儲在設備(例如,計算機)可讀介質中或者存儲在適于存儲電子指令并分別耦聯到總線的任何類型的介質中,所述計算機可讀介質包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、ROM(Read-Only Memory,只讀存儲器)、RAM(Random Access Memory,隨即存儲器)、EPROM(Erasable Programmable Read-Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質包括由設備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質。
本技術領域技術人員可以理解,可以用計算機程序指令來實現這些結構圖和/或框圖和/或流圖中的每個框以及這些結構圖和/或框圖和/或流圖中的框的組合。本技術領域技術人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業計算機或其他可編程數據處理方法的處理器來實現,從而通過計算機或其他可編程數據處理方法的處理器來執行本發明公開的結構圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術領域技術人員可以理解,本發明中已經討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發明中已經討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現有技術中的具有與本發明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅是本發明的部分實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。