數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法、訂閱消息數(shù)據(jù)發(fā)送方法及相關(guān)裝置制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法、訂閱消息數(shù)據(jù)發(fā)送方法及相關(guān)裝置,包括:在建立消息訂閱者的用戶連接后,使用該用戶連接的連接號和該消息訂閱者的用戶信息生成該消息訂閱者的用戶身份標識;對應(yīng)該連接號,創(chuàng)建該用戶連接的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包括該用戶身份標識;以及基于該用戶連接的數(shù)據(jù)結(jié)構(gòu)進行訂閱消息數(shù)據(jù)發(fā)送。采用本發(fā)明實施例提供的方案,相比于現(xiàn)有技術(shù),當消息數(shù)據(jù)更新時,消息訂閱者能夠及時獲取訂閱的消息數(shù)據(jù),并且避免了在消息訂閱者下線時需要刪除用戶連接關(guān)系表中相應(yīng)的連接號的處理。
【專利說明】數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法、訂閱消息數(shù)據(jù)發(fā)送方法及相關(guān)裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法、訂閱消息數(shù)據(jù)發(fā)送方法及相關(guān)裝置。
【背景技術(shù)】
[0002]發(fā)布/訂閱(Pub/Sub,Publish/Subscribe)模型定義了如何向一個內(nèi)容節(jié)點發(fā)布和訂閱消息,消息訂閱者從內(nèi)容節(jié)點訂閱消息關(guān)鍵字,當該消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,如何將該消息關(guān)鍵字最新的消息數(shù)據(jù)發(fā)送給消息訂閱者是比較重要的。
[0003]現(xiàn)有的訂閱消息數(shù)據(jù)發(fā)送方法主要有兩種:
[0004]第一種,當建立消息訂閱者的用戶連接后,對應(yīng)該用戶連接的連接號創(chuàng)建該用戶連接的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中存儲該消息訂閱者訂閱的消息關(guān)鍵字,該消息訂閱者訂閱的消息關(guān)鍵字以鏈表形式保存,當某個消息關(guān)鍵字的消息數(shù)據(jù)更新時,需要遍歷所有的消息訂閱者的消息關(guān)鍵字鏈表,確定訂閱該消息關(guān)鍵字的消息訂閱者后,將該消息關(guān)鍵字最新的消息數(shù)據(jù)發(fā)送給訂閱該消息關(guān)鍵字的消息訂閱者;當消息訂閱者下線時,直接將該消息訂閱者的連接號對應(yīng)的數(shù)據(jù)結(jié)構(gòu)進行清理。這樣,當遍歷所有的消息訂閱者的消息關(guān)鍵字鏈表時,代價較大,效率較低,導(dǎo)致消息訂閱者無法及時獲取訂閱的消息數(shù)據(jù)。
[0005]第二種,對應(yīng)消息關(guān)鍵字創(chuàng)建數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中存儲訂閱該消息關(guān)鍵字的消息訂閱者的連接號,訂閱該消息關(guān)鍵字的消息訂閱者的連接號以鏈表形式存儲,當該消息關(guān)鍵字的消息數(shù)據(jù)更新時,將該消息關(guān)鍵字最新的消息數(shù)據(jù)發(fā)送給訂閱該消息關(guān)鍵字的消息訂閱者;但當消息訂閱者下線時,需要對所有的鏈表進行遍歷,將所有鏈表中該消息訂閱者的連接號進行刪除,實際應(yīng)用中,通常是海量的消息訂閱者訂閱同一個消息關(guān)鍵字,所以該消息關(guān)鍵字對應(yīng)的鏈表中的表項是海量的,這就導(dǎo)致消息訂閱者下線時的刪除效率較低。
[0006]因此,現(xiàn)有的訂閱消息數(shù)據(jù)發(fā)送方法還無法兼顧消息數(shù)據(jù)更新時,消息訂閱者及時獲取訂閱的消息數(shù)據(jù),以及消息訂閱者下線時的刪除效率問題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例提供一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法、訂閱消息數(shù)據(jù)發(fā)送方法及相關(guān)裝置,用以解決現(xiàn)有技術(shù)中存在的當消息數(shù)據(jù)更新時,消息訂閱者無法及時獲取訂閱的消息以及當消息訂閱者下線時,刪除效率較低的問題。
[0008]本發(fā)明實施例提供一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法,包括:
[0009]在建立消息訂閱者的用戶連接后,使用所述用戶連接的連接號和所述消息訂閱者的用戶信息生成所述消息訂閱者的用戶身份標識;
[0010]對應(yīng)所述連接號,創(chuàng)建所述用戶連接的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)中包括所述用戶身份標識。
[0011]在本發(fā)明實施例提供的用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法的基礎(chǔ)上,本發(fā)明實施例還提供一種訂閱消息數(shù)據(jù)發(fā)送方法,包括:
[0012]當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,獲取與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表,所述用戶連接關(guān)系表中存儲訂閱所述消息關(guān)鍵字的用戶連接的連接號,以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識;
[0013]從所述用戶連接關(guān)系表中獲取存儲的連接號及對應(yīng)的用戶身份標識,分別作為待處理連接號和待處理用戶身份標識;
[0014]從所述待處理連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取所述待處理連接號當前對應(yīng)的用戶身份標識;
[0015]當所述待處理用戶身份標識與所述當前對應(yīng)的用戶身份標識相同時,通過所述待處理連接號表示的用戶連接,向?qū)?yīng)的消息訂閱者發(fā)送所述消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)。
[0016]采用本發(fā)明提供的上述方法,由于用戶連接的數(shù)據(jù)結(jié)構(gòu)中存儲了用戶連接的連接號和該連接號對應(yīng)的用戶身份標識,并且消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中存儲了訂閱該消息關(guān)鍵字的用戶連接的連接號以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識,當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,通過比對連接號在用戶連接的數(shù)據(jù)結(jié)構(gòu)中對應(yīng)的用戶身份標識和在用戶連接關(guān)系表中對應(yīng)的用戶身份標識,當二者相同時,將該消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)發(fā)送給對應(yīng)的消息訂閱者,當二者不同時,表示該連接號對應(yīng)的用戶連接已經(jīng)發(fā)生變化,用戶連接關(guān)系表中與該連接號對應(yīng)的用戶身份標識表示的消息訂閱者,與該連接號當前對應(yīng)的用戶身份標識表示的消息訂閱者已經(jīng)不同,此時,不向?qū)?yīng)的消息訂閱者發(fā)送該消息數(shù)據(jù)。身份標識的比對簡單易行,這既保證了消息數(shù)據(jù)更新時,消息訂閱者及時的獲取到訂閱的消息,又避免了在消息訂閱者下線時需要刪除用戶連接關(guān)系表中相應(yīng)的連接號的處理。
[0017]本發(fā)明實施例還提供一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建裝置,包括:
[0018]用戶身份標識生成單元,用于在建立消息訂閱者的用戶連接后,使用所述用戶連接的連接號和所述消息訂閱者的用戶信息生成所述消息訂閱者的用戶身份標識;
[0019]數(shù)據(jù)結(jié)構(gòu)創(chuàng)建單元,用于對應(yīng)所述連接號,創(chuàng)建所述用戶連接的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)中包括所述用戶身份標識。
[0020]基于上述用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建裝置,本發(fā)明實施例還提供一種訂閱消息數(shù)據(jù)發(fā)送裝置,包括:
[0021]關(guān)系表獲取單元,用于當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,獲取與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表,所述用戶連接關(guān)系表中存儲訂閱所述消息關(guān)鍵字的用戶連接的連接號,以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識;
[0022]用戶身份標識第一獲取單元,用于從所述用戶連接關(guān)系表中獲取存儲的連接號及對應(yīng)的用戶身份標識,分別作為待處理連接號和待處理用戶身份標識;
[0023]用戶身份標識第二獲取單元,用于從所述待處理連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取所述待處理連接號當前對應(yīng)的用戶身份標識;
[0024]處理單元,用于當所述待處理用戶身份標識與所述當前對應(yīng)的用戶身份標識相同時,通過所述待處理連接號表示的用戶連接,向?qū)?yīng)的消息訂閱者發(fā)送所述消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)。
[0025]采用本發(fā)明提供的上述裝置,由于用戶連接的數(shù)據(jù)結(jié)構(gòu)中存儲了用戶連接的連接號和該連接號對應(yīng)的用戶身份標識,并且消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中存儲了訂閱該消息關(guān)鍵字的用戶連接的連接號以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識,當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,通過比對連接號在用戶連接的數(shù)據(jù)結(jié)構(gòu)中對應(yīng)的用戶身份標識和在用戶連接關(guān)系表中對應(yīng)的用戶身份標識,當二者相同時,將該消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)發(fā)送給對應(yīng)的消息訂閱者,當二者不同時,表示該連接號對應(yīng)的用戶連接已經(jīng)發(fā)生變化,用戶連接關(guān)系表中與該連接號對應(yīng)的用戶身份標識表示的消息訂閱者,與該連接號當前對應(yīng)的用戶身份標識表示的消息訂閱者已經(jīng)不同,此時,不向?qū)?yīng)的消息訂閱者發(fā)送該消息數(shù)據(jù)。身份標識的比對簡單易行,這既保證了消息數(shù)據(jù)更新時,消息訂閱者及時的獲取到訂閱的消息,又避免了在消息訂閱者下線時需要刪除用戶連接關(guān)系表中相應(yīng)的連接號的處理。
[0026]本申請的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0027]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0028]圖1為本發(fā)明實施例提供的用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法的流程圖;
[0029]圖2為本發(fā)明實施例提供的用戶連接關(guān)系表創(chuàng)建方法的流程圖;
[0030]圖3為本發(fā)明實施例提供的訂閱消息數(shù)據(jù)發(fā)送方法的流程圖;
[0031]圖4為本發(fā)明實施例提供的用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建裝置的結(jié)構(gòu)示意圖;
[0032]圖5為本發(fā)明實施例提供的訂閱消息數(shù)據(jù)發(fā)送裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0033]為了給出當消息數(shù)據(jù)更新時,能夠使消息訂閱者及時獲取訂閱的消息數(shù)據(jù),以及提高消息訂閱者下線時的刪除效率的實現(xiàn)方案,本發(fā)明實施例提供了一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法、訂閱消息數(shù)據(jù)發(fā)送方法及相關(guān)裝置,以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0034]本發(fā)明實施例提供一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法,如圖1所示,包括:
[0035]步驟101、在建立消息訂閱者的用戶連接后,使用該用戶連接的連接號和該消息訂閱者的用戶信息生成該消息訂閱者的用戶身份標識。
[0036]步驟102、對應(yīng)該連接號,創(chuàng)建該用戶連接的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包括該用戶身份標識。
[0037]上述實施例中,當消息訂閱者上線時,首先會建立該消息訂閱者的用戶連接,然后使用該消息訂閱者的用戶信息(用戶連接的連接號、用戶的IP、端口等信息),采用預(yù)設(shè)運算方式進行運算,實際應(yīng)用中,可以采用哈希運算得到非零整數(shù),最后將該連接號與該非零整數(shù)進行組合,得到該消息訂閱者的用戶身份標識。將該用戶身份標識插入到對應(yīng)該連接號創(chuàng)建的用戶連接數(shù)據(jù)結(jié)構(gòu)中,該數(shù)據(jù)結(jié)構(gòu)是對應(yīng)用戶連接的連接號創(chuàng)建的,因此每一個用戶連接都會對應(yīng)一個數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包括該用戶連接的連接號和與其對應(yīng)的用戶身份標識。
[0038]本發(fā)明實施例還提供一種用戶連接關(guān)系表創(chuàng)建方法,如圖2所示,包括:
[0039]步驟201、對應(yīng)消息關(guān)鍵字創(chuàng)建一個對應(yīng)該消息關(guān)鍵字的用戶連接關(guān)系表。
[0040]步驟202、將訂閱該消息關(guān)鍵字的用戶連接的連接號,以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識,存儲在該用戶連接關(guān)系表中。具體的,可以采用鏈表形式存儲。
[0041]上述用戶連接關(guān)系表創(chuàng)建方法中,在該消息關(guān)鍵字的數(shù)據(jù)結(jié)構(gòu)中可以存儲一個指針,該指針指向該用戶連接關(guān)系表的首地址,當沒有用戶連接訂閱該消息關(guān)鍵字時,該指針為空。
[0042]基于上述用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法和用戶連接關(guān)系表創(chuàng)建方法,本發(fā)明實施例還提供一種訂閱消息數(shù)據(jù)發(fā)送方法,具體流程如圖3所示,包括:
[0043]步驟301、當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,獲取與該消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表。
[0044]該用戶連接關(guān)系表采用上述用戶連接關(guān)系表創(chuàng)建方法進行創(chuàng)建,該用戶連接關(guān)系表中存儲訂閱該消息關(guān)鍵字的用戶連接的連接號,以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識。
[0045]步驟302、從該用戶連接關(guān)系表中獲取存儲的連接號及對應(yīng)的用戶身份標識,分別作為待處理連接號和待處理用戶身份標識。
[0046]步驟303、從該待處理連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取該待處理連接號當前對應(yīng)的用戶身份標識。
[0047]步驟304、判斷該待處理用戶身份標識與該當前對應(yīng)的用戶身份標識是否相同,如果相同,執(zhí)行步驟305,否則,執(zhí)行步驟306。
[0048]步驟305、當該待處理用戶身份標識與該當前對應(yīng)的用戶身份標識相同時,通過該待處理連接號表示的用戶連接,向?qū)?yīng)的消息訂閱者發(fā)送該消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)。
[0049]步驟306、當該待處理用戶身份標識與該當前對應(yīng)的用戶身份標識不相同時,不向該待處理連接號對應(yīng)的消息訂閱者發(fā)送該消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)。
[0050]在實際過程中,當一個連接號表示的用戶連接斷開時,該連接號可以被新的用戶連接重新利用,此時,針對該連接號和新的用戶信息會生成新的用戶身份標識,而該用戶連接關(guān)系表中該連接號對應(yīng)的用戶身份標識還沒有更新,這就導(dǎo)致該連接號對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中的用戶身份標識與用戶連接關(guān)系表中該連接號對應(yīng)的用戶身份標識不一致,因此,當判斷出該連接號對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中的用戶身份標識與用戶連接關(guān)系表中該連接號對應(yīng)的用戶身份標識不相同時,表示該連接號對應(yīng)的用戶連接已經(jīng)發(fā)生變化,此時,不發(fā)送數(shù)據(jù),并且從該用戶連接關(guān)系表中,將該連接號和對應(yīng)的用戶身份標識進行刪除,以釋放連接關(guān)系表中的部分空間供以后使用。
[0051]進一步的,當消息訂閱者下線,即該消息訂閱者的連接號表示的用戶連接斷開時,不再需要對該用戶連接關(guān)系表中的該連接號和對應(yīng)的用戶身份標識進行清理,即不需要從用戶連接關(guān)系表中刪除該連接號和該連接號對應(yīng)的用戶身份標識。這就避免了在消息訂閱者下線時需要刪除用戶連接關(guān)系表中相應(yīng)的連接號的處理,進而避免了對整個用戶連接關(guān)系表的遍歷。
[0052]在上述訂閱消息數(shù)據(jù)發(fā)送方法中,可能有些消息關(guān)鍵字的消息數(shù)據(jù)長時間沒有更新,但該消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中有些連接號表示的用戶連接已經(jīng)斷開,該連接號已經(jīng)失效,因此,為了提高用戶連接關(guān)系表的利用率,對于消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表,可以預(yù)設(shè)一個清除周期,或者,當該用戶連接關(guān)系表的利用率大于預(yù)設(shè)利用閾值時,或者,當該用戶連接關(guān)系表中存儲的連接號的數(shù)量大于預(yù)設(shè)數(shù)量閾值時,分別將該用戶連接關(guān)系表中存儲的每個連接號和對應(yīng)的用戶身份標識,作為待判斷連接號和待判斷用戶身份標識,并從該待判斷連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取該待判斷連接號當前對應(yīng)的用戶身份標識;當該待判斷用戶身份標識與該待判斷連接號當前對應(yīng)的用戶身份標識不同時,從與該消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中,刪除該待判斷連接號和對應(yīng)的待判斷用戶身份標識。
[0053]基于同一發(fā)明構(gòu)思,根據(jù)本發(fā)明上述實施例提供的用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法,相應(yīng)地,本發(fā)明另一實施例還提供了用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建裝置,裝置結(jié)構(gòu)示意圖如圖4所示,具體包括:
[0054]用戶身份標識生成單元401,用于在建立消息訂閱者的用戶連接后,使用該用戶連接的連接號和該消息訂閱者的用戶信息生成該消息訂閱者的用戶身份標識;
[0055]數(shù)據(jù)結(jié)構(gòu)創(chuàng)建單元402,用于對應(yīng)該連接號,創(chuàng)建該用戶連接的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包括該用戶身份標識。
[0056]進一步的,該用戶身份標識生成單元401,具體用于使用該消息訂閱者的用戶信息,采用預(yù)設(shè)運算方式進行運算,得到非零整數(shù);并將該連接號與該非零整數(shù)進行組合,得至IJ該消息訂閱者的用戶身份標識。
[0057]上述各單元的功能可對應(yīng)于圖1所示流程中的相應(yīng)處理步驟,在此不再贅述。
[0058]本發(fā)明實施例還提供一種訂閱消息數(shù)據(jù)發(fā)送裝置,結(jié)構(gòu)示意圖如圖5所示,包括:
[0059]關(guān)系表獲取單元501,用于當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,獲取與該消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表,該用戶連接關(guān)系表中存儲訂閱該消息關(guān)鍵字的用戶連接的連接號,以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識;
[0060]用戶身份標識第一獲取單元502,用于從該用戶連接關(guān)系表中獲取存儲的連接號及對應(yīng)的用戶身份標識,分別作為待處理連接號和待處理用戶身份標識;
[0061]用戶身份標識第二獲取單元503,用于從該待處理連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取該待處理連接號當前對應(yīng)的用戶身份標識;
[0062]處理單元504,用于當該待處理用戶身份標識與該當前對應(yīng)的用戶身份標識相同時,通過該待處理連接號表示的用戶連接,向?qū)?yīng)的消息訂閱者發(fā)送該消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)。
[0063]進一步的,處理單元504,還用于當該待處理用戶身份標識與該當前對應(yīng)的用戶身份標識不相同時,從與該消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中,刪除該待處理連接號和對應(yīng)的待處理用戶身份標識。
[0064]進一步的,處理單元504,還用于當清除周期到達時,或者,當該用戶連接關(guān)系表的利用率大于預(yù)設(shè)利用率閾值時,或者,當該用戶連接關(guān)系表中存儲的連接號的數(shù)量大于預(yù)設(shè)數(shù)量閾值時,分別將該用戶連接關(guān)系表中存儲的每個連接號和對應(yīng)的用戶身份標識,作為待判斷連接號和待判斷用戶身份標識,從該待判斷連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取該待判斷連接號當前對應(yīng)的用戶身份標識;并且當該待判斷用戶身份標識與該待判斷連接號當前對應(yīng)的用戶身份標識不同時,從與該消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中,刪除該待判斷連接號和對應(yīng)的待判斷用戶身份標識。
[0065]處理單元504,還用于在該用戶連接關(guān)系表中的連接號表示的用戶連接斷開時,不從該用戶連接關(guān)系表中刪除該連接號和該連接號對應(yīng)的用戶身份標識。
[0066]上述各單元的功能可對應(yīng)于圖2所示流程中的相應(yīng)處理步驟,在此不再贅述。
[0067]綜上所述,本發(fā)明實施例提供的方案,包括:在建立消息訂閱者的用戶連接后,使用該用戶連接的連接號和該消息訂閱者的用戶信息生成該消息訂閱者的用戶身份標識;對應(yīng)該連接號,創(chuàng)建該用戶連接的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包括該用戶身份標識;以及基于該用戶連接的數(shù)據(jù)結(jié)構(gòu)進行訂閱消息數(shù)據(jù)發(fā)送,采用本發(fā)明實施例提供的方案,相比于現(xiàn)有技術(shù),當消息數(shù)據(jù)更新時,消息訂閱者能夠及時獲取訂閱的消息數(shù)據(jù),并且避免了在消息訂閱者下線時需要刪除用戶連接關(guān)系表中相應(yīng)的連接號的處理。
[0068]本申請的實施例所提供的訂閱消息數(shù)據(jù)發(fā)送裝置可通過計算機程序?qū)崿F(xiàn)。本領(lǐng)域技術(shù)人員應(yīng)該能夠理解,上述的單元劃分方式僅是眾多單元劃分方式中的一種,如果劃分為其他單元或不劃分單元,只要訂閱消息數(shù)據(jù)發(fā)送裝置具有上述功能,都應(yīng)該在本申請的保護范圍之內(nèi)。
[0069]本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0070]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0071]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0072]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建方法,其特征在于,包括: 在建立消息訂閱者的用戶連接后,使用所述用戶連接的連接號和所述消息訂閱者的用戶信息生成所述消息訂閱者的用戶身份標識; 對應(yīng)所述連接號,創(chuàng)建所述用戶連接的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)中包括所述用戶身份標識。
2.如權(quán)利要求1所述的方法,其特征在于,使用所述用戶連接的連接號和所述消息訂閱者的用戶信息生成所述消息訂閱者的用戶身份標識,具體包括: 使用所述消息訂閱者的用戶信息,采用預(yù)設(shè)運算方式進行運算,得到非零整數(shù); 將所述連接號與所述非零整數(shù)進行組合,得到所述消息訂閱者的用戶身份標識。
3.一種基于權(quán)利要求1-2任一所述方法的訂閱消息數(shù)據(jù)發(fā)送方法,其特征在于,包括: 當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,獲取與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表,所述用戶連接 關(guān)系表中存儲訂閱所述消息關(guān)鍵字的用戶連接的連接號,以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識; 從所述用戶連接關(guān)系表中獲取存儲的連接號及對應(yīng)的用戶身份標識,分別作為待處理連接號和待處理用戶身份標識; 從所述待處理連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取所述待處理連接號當前對應(yīng)的用戶身份標識; 當所述待處理用戶身份標識與所述當前對應(yīng)的用戶身份標識相同時,通過所述待處理連接號表示的用戶連接,向?qū)?yīng)的消息訂閱者發(fā)送所述消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)。
4.如權(quán)利要求3所述的方法,其特征在于,還包括: 當所述待處理用戶身份標識與所述當前對應(yīng)的用戶身份標識不相同時,從與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中,刪除所述待處理連接號和對應(yīng)的待處理用戶身份標識。
5.如權(quán)利要求3所述的方法,其特征在于,還包括: 當清除周期到達時,或者,當所述用戶連接關(guān)系表的利用率大于預(yù)設(shè)利用率閾值時,或者,當所述用戶連接關(guān)系表中存儲的連接號的數(shù)量大于預(yù)設(shè)數(shù)量閾值時,分別將所述用戶連接關(guān)系表中存儲的每個連接號和對應(yīng)的用戶身份標識,作為待判斷連接號和待判斷用戶身份標識,從所述待判斷連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取所述待判斷連接號當前對應(yīng)的用戶身份標識; 當所述待判斷用戶身份標識與所述待判斷連接號當前對應(yīng)的用戶身份標識不同時,從與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中,刪除所述待判斷連接號和對應(yīng)的待判斷用戶身份標識。
6.如權(quán)利要求3-5任一所述的方法,其特征在于,在所述用戶連接關(guān)系表中的連接號表示的用戶連接斷開時,不從所述用戶連接關(guān)系表中刪除該連接號和該連接號對應(yīng)的用戶身份標識。
7.一種用戶連接的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建裝置,其特征在于,包括: 用戶身份標識生成單元,用于在建立消息訂閱者的用戶連接后,使用所述用戶連接的連接號和所述消息訂閱者的用戶信息生成所述消息訂閱者的用戶身份標識; 數(shù)據(jù)結(jié)構(gòu)創(chuàng)建單元,用于對應(yīng)所述連接號,創(chuàng)建所述用戶連接的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)中包括所述用戶身份標識。
8.如權(quán)利要求7所述的裝置,其特征在于,所述用戶身份標識生成單元,具體用于使用所述消息訂閱者的用戶信息,采用預(yù)設(shè)運算方式進行運算,得到非零整數(shù);并將所述連接號與所述非零整數(shù)進行組合,得到所述消息訂閱者的用戶身份標識。
9.一種基于權(quán)利要求7-8任一所述裝置的訂閱消息數(shù)據(jù)發(fā)送裝置,其特征在于,包括: 關(guān)系表獲取單元,用于當消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)更新時,獲取與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表,所述用戶連接關(guān)系表中存儲訂閱所述消息關(guān)鍵字的用戶連接的連接號,以及該用戶連接在創(chuàng)建時該連接號對應(yīng)的用戶身份標識; 用戶身份標識第一獲取單元,用于從所述用戶連接關(guān)系表中獲取存儲的連接號及對應(yīng)的用戶身份標識,分別作為待處理連接號和待處理用戶身份標識; 用戶身份標識第二獲取單元,用于從所述待處理連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取所述待處理連接號當前對應(yīng)的用戶身份標識; 處理單元,用于當所述待處理用戶身份標識與所述當前對應(yīng)的用戶身份標識相同時,通過所述待處理連接號表示的用戶連接,向?qū)?yīng)的消息訂閱者發(fā)送所述消息關(guān)鍵字對應(yīng)的消息數(shù)據(jù)。
10.如權(quán)利要求9所述的裝置,其特征在于,所述處理單元,還用于當所述待處理用戶身份標識與所述當前對應(yīng)的用戶身份標識不相同時,從與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中,刪除所述待處理連接號和對應(yīng)的待處理用戶身份標識。
11.如權(quán)利要求9所述的裝置,其特征在于,所述處理單元,還用于當清除周期到達時,或者,當所述用戶連接關(guān)系表的利用率大于預(yù)設(shè)利用率閾值時,或者,當所述用戶連接關(guān)系表中存儲的連接號的數(shù)量大于預(yù)設(shè)數(shù)量閾值時,分別將所述用戶連接關(guān)系表中存儲的每個連接號和對應(yīng)的用戶身份標識,作為待判斷連接號和待判斷用戶身份標識,從所述待判斷連接號當前對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,獲取所述待判斷連接號當前對應(yīng)的用戶身份標識;并且當所述待判斷用戶身份標識與所述待判斷連接號當前對應(yīng)的用戶身份標識不同時,從與所述消息關(guān)鍵字對應(yīng)的用戶連接關(guān)系表中,刪除所述待判斷連接號和對應(yīng)的待判斷用戶身份標識。
12.如權(quán)利要求9-11任一所述的裝置,其特征在于,所述處理單元,還用于在所述用戶連接關(guān)系表中的連接號表示的用戶連接斷開時,不從所述用戶連接關(guān)系表中刪除該連接號和該連接號對應(yīng)的用戶身份標識。
【文檔編號】G06F17/30GK103699616SQ201310694602
【公開日】2014年4月2日 申請日期:2013年12月17日 優(yōu)先權(quán)日:2013年12月17日
【發(fā)明者】黃旭 申請人:新浪網(wǎng)技術(shù)(中國)有限公司