向互聯(lián)網(wǎng)應(yīng)用中的用戶推送目標(biāo)服務(wù)消息;與此同時(shí)會(huì)調(diào)用消息系統(tǒng)接口將該消息推送請(qǐng)求傳遞至處理服務(wù)器,處理服務(wù)器從消息系統(tǒng)接口監(jiān)聽到消息推送請(qǐng)求時(shí),可以從消息推送管理界面中獲取待推送的消息內(nèi)容,此處的消息內(nèi)容可包括但不限于:文本、圖片、音視頻等等。
[0075]S102,處理服務(wù)器根據(jù)所述消息內(nèi)容判斷待推送的消息類型,所述消息類型包括短消息類型或長(zhǎng)消息類型。
[0076]處理服務(wù)器在執(zhí)行步驟S102時(shí)具體執(zhí)行如下步驟sll-sl3:
[0077]sll,獲取所述消息內(nèi)容的數(shù)據(jù)量。數(shù)據(jù)量用于描述消息內(nèi)容所包含的數(shù)據(jù)長(zhǎng)度或數(shù)據(jù)大小,其計(jì)量單位包括bi t (比特)、by te (字節(jié))、KB(千字節(jié))、GB(十億字節(jié))等等。處理服務(wù)器獲得消息內(nèi)容后,可計(jì)算該消息內(nèi)容的數(shù)據(jù)量。
[0078]sl2,判斷所述數(shù)據(jù)量是否大于MTU的值。
[0079]MTU用于描述一種通信協(xié)議下所允許的最大數(shù)據(jù)包大小,通常以字節(jié)為單位。一般地,MTU與通信接口(網(wǎng)絡(luò)接口卡、串口等)有關(guān),MTU越大,傳送相同的數(shù)據(jù)所需的數(shù)據(jù)包數(shù)量越少,通信效率越高。在諸如即時(shí)通信平臺(tái)、SNS平臺(tái)等社交應(yīng)用平臺(tái)中,MTU的值通常是1500字節(jié)。
[0080]sl3,若大于,確定待推送的消息類型為長(zhǎng)消息類型;否則,確定待推送的消息類型為短消息類型。
[0081]上述步驟sll-sl3中,處理服務(wù)器在從消息推送管理界面中獲得消息內(nèi)容之后,計(jì)算該消息內(nèi)容的數(shù)據(jù)量,并且判斷該數(shù)據(jù)量是否大于MTU的值,以MTU的值為1500字節(jié)為例,如果消息內(nèi)容的數(shù)據(jù)量大于1500字節(jié),那么,表明待推送的服務(wù)消息的長(zhǎng)度超過一個(gè)MTU的長(zhǎng)度,則該待推送的消息類型為長(zhǎng)消息類型;相反,如果消息內(nèi)容的數(shù)據(jù)量在1500字節(jié)及以內(nèi),表明待推送的服務(wù)消息可以由一個(gè)MTU承載,則該待推送的消息類型為短消息類型。
[0082]可以理解的是,上述步驟sll-sl3為本發(fā)明實(shí)施例的一種優(yōu)選實(shí)現(xiàn)方式,實(shí)際應(yīng)用中還可以采用其他方式,例如:可以設(shè)置閾值,若消息內(nèi)容的數(shù)據(jù)量大于該閾值則認(rèn)為是短消息類型;否則認(rèn)為是長(zhǎng)消息類型;等等。
[0083]S103,若待推送的消息類型為長(zhǎng)消息類型,處理服務(wù)器在集群存儲(chǔ)服務(wù)系統(tǒng)中存儲(chǔ)所述消息內(nèi)容。
[0084]如果待推送的消息類型為短消息類型,那么,處理服務(wù)器可以按照通信協(xié)議對(duì)消息內(nèi)容進(jìn)行封裝形成服務(wù)消息,按照現(xiàn)有傳輸方式通過既有的消息傳輸通道將該服務(wù)消息推送給關(guān)注該公眾服務(wù)帳號(hào)的一個(gè)或多個(gè)用戶。如果待推送的消息類型為長(zhǎng)消息類型,那么,處理服務(wù)器可以向集群存儲(chǔ)服務(wù)系統(tǒng)中的至少一個(gè)存儲(chǔ)服務(wù)器發(fā)送存儲(chǔ)指令,所述存儲(chǔ)指令包括所述消息內(nèi)容,所述存儲(chǔ)指令用于控制所述至少一個(gè)存儲(chǔ)服務(wù)器存儲(chǔ)所述消息內(nèi)容,并生成所述消息內(nèi)容的唯一標(biāo)識(shí)。需要說明的是,消息內(nèi)容被分別存儲(chǔ)在各個(gè)存儲(chǔ)服務(wù)器中,同一消息內(nèi)容可以存在于集群存儲(chǔ)服務(wù)系統(tǒng)的每個(gè)存儲(chǔ)服務(wù)器中,依據(jù)所述消息內(nèi)容的唯一標(biāo)識(shí)可以從每個(gè)存儲(chǔ)服務(wù)器中讀取該消息內(nèi)容;此處,每個(gè)存儲(chǔ)服務(wù)器均采用相同的標(biāo)準(zhǔn)生成消息內(nèi)容的唯一標(biāo)識(shí),具體地,可以根據(jù)該消息內(nèi)容的數(shù)據(jù)量、形成時(shí)間戳等等屬性基于Hash(哈希)算法計(jì)算得到;由于存在于每個(gè)存儲(chǔ)服務(wù)器的消息內(nèi)容的屬性是一致的,因此每個(gè)存儲(chǔ)服務(wù)器計(jì)算獲得的該消息內(nèi)容的標(biāo)識(shí)也是唯一的。
[0085]S104,處理服務(wù)器接收所述集群存儲(chǔ)服務(wù)系統(tǒng)返回的所述消息內(nèi)容的標(biāo)識(shí)。此步驟中,消息內(nèi)容的標(biāo)識(shí)可以是由所述集群存儲(chǔ)服務(wù)系統(tǒng)的任一個(gè)或多個(gè)存儲(chǔ)服務(wù)器返回至處理服務(wù)器。本發(fā)明實(shí)施例的后續(xù)步驟中,可以采用Rkey表示消息內(nèi)容的標(biāo)識(shí)。
[0086]S105,處理服務(wù)器生成目標(biāo)服務(wù)消息,所述目標(biāo)服務(wù)消息攜帶所述消息內(nèi)容的標(biāo)識(shí)。處理服務(wù)器按照通信協(xié)議對(duì)消息內(nèi)容的標(biāo)識(shí)Rkey進(jìn)行封裝形成目標(biāo)服務(wù)消息,此處的通信協(xié)議可包括但不限于:TCP(Transmiss1n Control Protocol,傳輸控制協(xié)議)協(xié)議、UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)協(xié)議等等。本步驟可知,目標(biāo)服務(wù)消息并非承載消息內(nèi)容本身,而是承載消息內(nèi)容的標(biāo)識(shí),這就實(shí)現(xiàn)了目標(biāo)服務(wù)消息與消息內(nèi)容的分咼。
[0087]S106,處理服務(wù)器將所述目標(biāo)服務(wù)消息發(fā)送至所述公眾服務(wù)帳號(hào)所屬互聯(lián)網(wǎng)應(yīng)用中的至少一個(gè)帳號(hào)標(biāo)識(shí)的所對(duì)應(yīng)的終端。
[0088]用戶通過終端使用所述互聯(lián)網(wǎng)應(yīng)用的過程中,可以在該互聯(lián)網(wǎng)應(yīng)用中注冊(cè)獲得帳號(hào)標(biāo)識(shí);進(jìn)一步,用戶可關(guān)注至少一個(gè)公眾服務(wù)帳號(hào)以接受所關(guān)注的公眾服務(wù)帳號(hào)提供的服務(wù),例如:用戶A可在社交應(yīng)用中關(guān)注某個(gè)視頻網(wǎng)站對(duì)應(yīng)的公眾服務(wù)帳號(hào)zz,當(dāng)用戶A成功關(guān)注公眾服務(wù)帳號(hào)Zz之后,用戶A對(duì)應(yīng)的帳號(hào)標(biāo)識(shí)a則與公眾服務(wù)帳號(hào)zz形成關(guān)聯(lián)關(guān)系,用戶A可收到該公眾服務(wù)帳號(hào)zz提供的視頻下載或視頻觀看服務(wù)。通常,處理服務(wù)器采用關(guān)系鏈記錄所述公眾服務(wù)帳號(hào)的關(guān)注關(guān)系、關(guān)聯(lián)關(guān)系等,并對(duì)所述公眾服務(wù)帳號(hào)的關(guān)系鏈進(jìn)行維護(hù)和管理;例如:上述例子中,用戶A取消關(guān)注公眾服務(wù)帳號(hào)zz時(shí),帳號(hào)標(biāo)識(shí)a與公眾服務(wù)帳號(hào)zz之間的關(guān)聯(lián)關(guān)系同時(shí)解除,所述處理服務(wù)器需要更新公眾服務(wù)帳號(hào)zz的關(guān)系鏈。在本步驟的一種可行的實(shí)施方式中,處理服務(wù)器可以將目標(biāo)服務(wù)消息發(fā)送至互聯(lián)網(wǎng)應(yīng)用中的全部或部分的用戶的帳號(hào)標(biāo)識(shí)對(duì)應(yīng)的終端;在另一種可行的實(shí)施方式中,處理服務(wù)器可查詢所述公眾服務(wù)帳號(hào)的關(guān)系鏈,獲取與所述公眾服務(wù)帳號(hào)具備關(guān)聯(lián)關(guān)系的至少一個(gè)帳號(hào)標(biāo)識(shí),并且,將目標(biāo)服務(wù)消息發(fā)送至該至少一個(gè)帳號(hào)標(biāo)識(shí)的所對(duì)應(yīng)的終端。可以理解的是,如果公眾服務(wù)帳號(hào)的配置服務(wù)器在消息推送管理界面指定了推送對(duì)象為一個(gè)或多個(gè)用戶,那么,本步驟中處理服務(wù)器從至少一個(gè)帳號(hào)標(biāo)識(shí)中選取推送對(duì)象的帳號(hào)標(biāo)識(shí),然后將目標(biāo)服務(wù)消息推送至推送對(duì)象的帳號(hào)標(biāo)識(shí)對(duì)應(yīng)的終端。
[0089]S107,當(dāng)接收到處理服務(wù)器下發(fā)的公眾服務(wù)帳號(hào)的目標(biāo)服務(wù)消息時(shí),終端判斷所述目標(biāo)服務(wù)消息的消息類型,所述消息類型包括短消息類型或長(zhǎng)消息類型。
[0090]本步驟針對(duì)消息類型的判斷過程發(fā)生在接收到目標(biāo)服務(wù)消息的任一個(gè)終端側(cè),終端可以根據(jù)通信協(xié)議解析目標(biāo)服務(wù)消息,判斷該目標(biāo)服務(wù)消息包含具體的消息內(nèi)容,或者包含消息內(nèi)容的標(biāo)識(shí)Rkey;如果該目標(biāo)服務(wù)消息包含具體的消息內(nèi)容,那么,可確認(rèn)該目標(biāo)服務(wù)消息是短消息類型;如果該目標(biāo)服務(wù)消息包含消息內(nèi)容的標(biāo)識(shí)Rkey,那么,可確認(rèn)該目標(biāo)服務(wù)消息是長(zhǎng)消息類型。
[0091 ] S108,若所述目標(biāo)服務(wù)消息為長(zhǎng)消息類型,終端從所述目標(biāo)服務(wù)消息中讀取消息內(nèi)容的標(biāo)識(shí)。
[0092]S109,終端根據(jù)所述消息內(nèi)容的標(biāo)識(shí)向所述處理服務(wù)器發(fā)送下載請(qǐng)求。
[0093]S110,若接收到所述終端根據(jù)所述消息內(nèi)容的標(biāo)識(shí)發(fā)送的下載請(qǐng)求,處理服務(wù)器向所述終端返回所述消息內(nèi)容的下載地址。
[0094]Slll,終端接收所述處理服務(wù)器返回的所述消息內(nèi)容的下載地址。
[0095]S112,終端根據(jù)所述下載地址下載所述消息內(nèi)容。
[0096]步驟S109-S112可以包括以下兩種可行的實(shí)施方式,其中一種可行的實(shí)施方式為:
[0097]終端可以生成攜帶消息內(nèi)容的標(biāo)識(shí)Rkey的下載請(qǐng)求,并且向所述處理服務(wù)器發(fā)送該下載請(qǐng)求,在此情況下,處理服務(wù)器可以根據(jù)該消息內(nèi)容的標(biāo)識(shí)Rkey,將存儲(chǔ)該消息內(nèi)容的至少一個(gè)存儲(chǔ)服務(wù)器的IP地址返回給所述終端;那么,終端側(cè)接收到的下載地址即為該至少一個(gè)存儲(chǔ)服務(wù)器的IP地址,終端可以基于就近原則,從所述至少一個(gè)存儲(chǔ)服務(wù)器的IP地址中選取與終端本地的源IP地址距離最近的目標(biāo)IP地址,然后從該目標(biāo)IP地址所對(duì)應(yīng)的目標(biāo)存儲(chǔ)服務(wù)器中獲取消息內(nèi)容。
[0098]在另一種可行的實(shí)施方式中:
[0099]終端可以生成同時(shí)攜帶消息內(nèi)容的標(biāo)識(shí)Rkey以及終端本地的源IP地址的下載請(qǐng)求,并且向所述處理服務(wù)器發(fā)送該下載請(qǐng)求,在此情況下,處理服務(wù)器可以基于就近原則,從存儲(chǔ)該消息內(nèi)容的至少一個(gè)存儲(chǔ)服務(wù)器的IP地址中選取與終端本地的源IP地址距離最近的目標(biāo)IP地址返回給所述終端;那么,終端側(cè)接收到的下載地址即為該目標(biāo)IP地址,然后從該目標(biāo)IP地址所對(duì)應(yīng)的目標(biāo)存儲(chǔ)服務(wù)器中獲取消息內(nèi)容。
[0100]需要說明的是,上述兩種可行的實(shí)施方式的差別在于:由終端自行選擇就近的目標(biāo)IP地址,還是由處理服務(wù)器選擇就近的目標(biāo)IP地址。基于就近原則選取目標(biāo)IP地址,可以使消息內(nèi)容能夠在最短的傳輸路徑中進(jìn)行傳輸,減少傳輸時(shí)延,提升下載效率。由于目標(biāo)IP地址能夠重定向至目標(biāo)存儲(chǔ)服務(wù)器的所在位置,而消息內(nèi)容的標(biāo)識(shí)Rkey能夠重定向至目標(biāo)存儲(chǔ)服務(wù)器內(nèi)的消息內(nèi)容所在位置,因此,終端利用所獲得的目標(biāo)IP地址及消息內(nèi)容的標(biāo)識(shí)Rkey能夠組裝得到獲取該消息內(nèi)容的唯一URL(Uniform Resource Locator,統(tǒng)一資源定位符),并基于該URL下載得到消息內(nèi)容;另外,終端在獲得消息內(nèi)容之后,可以輸出目標(biāo)服務(wù)消息以及該消息內(nèi)容,終端側(cè)的用戶則可在終端中瀏覽所輸出的目標(biāo)服務(wù)消息的消息內(nèi)容。
[0101]本發(fā)明實(shí)施例的消息處理方法,在接收到公眾服務(wù)帳號(hào)的消息推送請(qǐng)求時(shí),根據(jù)待推送的消息內(nèi)容判斷待推送的消息類型,針對(duì)待推送的長(zhǎng)消息類型的服務(wù)消息會(huì)將服務(wù)消息與消息內(nèi)容相分離,利用既有的消息傳輸通道向