亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種消息推送方法及裝置、電子設(shè)備與流程

文檔序號(hào):11732173閱讀:179來(lái)源:國(guó)知局
一種消息推送方法及裝置、電子設(shè)備與流程

本公開涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種消息推送方法及裝置、電子設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。



背景技術(shù):

隨著移動(dòng)通信技術(shù)的發(fā)展,移動(dòng)終端的功能越來(lái)越多,除了具備通話和發(fā)送短信的基本功能外,還具備上網(wǎng)的功能。移動(dòng)終端在運(yùn)行某個(gè)移動(dòng)終端軟件的過程中,后臺(tái)服務(wù)器通常會(huì)發(fā)送消息給移動(dòng)終端,要求移動(dòng)終端顯示文字和圖片。

有些應(yīng)用場(chǎng)景,要實(shí)現(xiàn)某一時(shí)刻給所有在線用戶推送彼此不同的實(shí)時(shí)消息,當(dāng)存在大量在線用戶時(shí),推送這些消息需要一定的時(shí)間,為盡快的給大量在線用戶推送這些實(shí)時(shí)消息,常用的方法,是單進(jìn)程對(duì)所有用戶進(jìn)行遍歷,對(duì)每個(gè)用戶生成需要發(fā)送的消息,這些消息可通過實(shí)時(shí)計(jì)算得到,也可以事先計(jì)算好并存儲(chǔ)在數(shù)據(jù)庫(kù)中,發(fā)送時(shí)依次針對(duì)每個(gè)用戶從數(shù)據(jù)庫(kù)中讀取要發(fā)送的消息進(jìn)行發(fā)送。

現(xiàn)有方案中通過實(shí)時(shí)計(jì)算需要發(fā)送的消息內(nèi)容,雖然可以免去存儲(chǔ)所有用戶待發(fā)送的消息內(nèi)容的存儲(chǔ)消耗,但需要耗費(fèi)一定的計(jì)算時(shí)間,影響用戶接收到消息的時(shí)效性。另外,事先計(jì)算每個(gè)用戶待發(fā)送的消息內(nèi)容存儲(chǔ)于數(shù)據(jù)庫(kù)中雖然可以避免實(shí)時(shí)計(jì)算消息內(nèi)容的時(shí)間消耗,但同時(shí)增加了從數(shù)據(jù)庫(kù)讀取消息內(nèi)容的時(shí)間。對(duì)于用戶接收消息時(shí)效性的影響取決于實(shí)時(shí)計(jì)算消息內(nèi)容的時(shí)間長(zhǎng)或者從數(shù)據(jù)庫(kù)讀取消息內(nèi)容的時(shí)間長(zhǎng)。進(jìn)一步的,通過單進(jìn)程遍歷所有的用戶,當(dāng)用戶量很大時(shí),遍歷耗時(shí)將逐漸增大,后推送消息的用戶消息到達(dá)的時(shí)效性越來(lái)越差。



技術(shù)實(shí)現(xiàn)要素:

為了解決相關(guān)技術(shù)中存在的消息到達(dá)的時(shí)效性差的問題,本公開提供了一種消息推送方法。

本公開提供了一種消息推送方法,所述方法實(shí)現(xiàn)進(jìn)程的消息推送過程,所述進(jìn)程包括多個(gè)線程,所述方法包括:

接收為多個(gè)消息接收端推送消息的觸發(fā)指令,所述多個(gè)消息接收端分散連接至所述多個(gè)線程上;

根據(jù)所述觸發(fā)指令,確定每一線程向所連接消息接收端推送消息的順序;

所述每一線程均按照所述向所連接消息接收端推送消息的順序,依次為所連接的消息接收端獲取待發(fā)送的消息內(nèi)容并將所述待發(fā)送的消息內(nèi)容推送至所連接的消息接收端。

另一方面,本公開還提供了一種消息推送裝置,所述裝置用于進(jìn)行消息推送,所述裝置進(jìn)行消息推送的進(jìn)程包括多個(gè)線程,所述裝置包括:

指令接收模塊,用于接收為多個(gè)消息接收端推送消息的觸發(fā)指令,所述多個(gè)消息接收端分散連接至所述多個(gè)線程上;

線程觸發(fā)模塊,用于根據(jù)所述觸發(fā)指令,確定每一線程向所連接消息接收端推送消息的順序;

其中,所述每一線程均按照所述向所連接消息接收端推送消息的順序,依次為所連接的消息接收端獲取待發(fā)送的消息內(nèi)容并將所述待發(fā)送的消息內(nèi)容推送至所連接的消息接收端。

本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:

本公開提供的技術(shù)方案,通過單個(gè)進(jìn)程的多個(gè)線程并發(fā)進(jìn)行消息推送,每個(gè)線程可以同時(shí)執(zhí)行消息推送操作,由此可以縮短完成所有消息推送端消息推送任務(wù)的時(shí)間,保證消息到達(dá)的時(shí)效性,解決現(xiàn)有消息到達(dá)的時(shí)效性差的問題。

應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本公開。

附圖說(shuō)明

此處的附圖被并入說(shuō)明書中并構(gòu)成本說(shuō)明書的一部分,示出了符合本發(fā)明的實(shí)施例,并于說(shuō)明書一起用于解釋本發(fā)明的原理。

圖1是根據(jù)本公開所涉及的實(shí)施環(huán)境的示意圖;

圖2是根據(jù)一示例性實(shí)施例示出的一種服務(wù)器的框圖;

圖3是根據(jù)一示例性實(shí)施例示出的一種消息推送方法的流程圖;

圖4是根據(jù)一示例性實(shí)施例示出的一種消息推送方法的原理示意圖;

圖5是圖3對(duì)應(yīng)實(shí)施例的步驟s310的流程圖;

圖6是圖3對(duì)應(yīng)實(shí)施例的步驟s350的流程圖;

圖7是進(jìn)程中的其中一個(gè)線程進(jìn)行消息推送的流程圖;

圖8是根據(jù)一示例性實(shí)施例示出的一種消息推送裝置的框圖;

圖9是在圖8對(duì)應(yīng)實(shí)施例的基礎(chǔ)上示出的一種消息推送裝置的框圖。

具體實(shí)施方式

這里將詳細(xì)地對(duì)示例性實(shí)施例執(zhí)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。

圖1是根據(jù)本公開所涉及的實(shí)施環(huán)境的示意圖。該實(shí)施環(huán)境包括:服務(wù)器110和多個(gè)客戶端120;

服務(wù)器110和多個(gè)客戶端120之間的關(guān)聯(lián)方式,包括硬件的網(wǎng)絡(luò)關(guān)聯(lián)方式和/或協(xié)議,以及二者之間往來(lái)的數(shù)據(jù)關(guān)聯(lián)方式。服務(wù)器110用于向多個(gè)客戶端120推送消息。該服務(wù)器110的消息推送進(jìn)程包括多個(gè)線程,多個(gè)客戶端120分散連接在多個(gè)線程上,從而可以實(shí)現(xiàn)多個(gè)線程并發(fā)向多個(gè)客戶端120同時(shí)推送消息,縮短消息推送時(shí)間。客戶端120可以是參與同一場(chǎng)游戲的多個(gè)客戶端120,也可以是一起參與群聊的多個(gè)客戶端120。

參見圖2,圖2是本公開實(shí)施例提供的一種服務(wù)器結(jié)構(gòu)示意圖。該服務(wù)器200可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器(centralprocessingunits,cpu)222(例如,一個(gè)或一個(gè)以上處理器)和存儲(chǔ)器232,一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序242或數(shù)據(jù)244的存儲(chǔ)介質(zhì)230(例如一個(gè)或一個(gè)以上海量存儲(chǔ)設(shè)備)。其中,存儲(chǔ)器232和存儲(chǔ)介質(zhì)230可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)介質(zhì)230的程序可以包括一個(gè)或一個(gè)以上模塊(圖示未示出),每個(gè)模塊可以包括對(duì)服務(wù)器中的一系列指令操作。更進(jìn)一步地,中央處理器222可以設(shè)置為與存儲(chǔ)介質(zhì)230通信,在服務(wù)器200上執(zhí)行存儲(chǔ)介質(zhì)230中的一系列指令操作。服務(wù)器200還可以包括一個(gè)或一個(gè)以上電源226,一個(gè)或一個(gè)以上有線或無(wú)線網(wǎng)絡(luò)接口250,一個(gè)或一個(gè)以上輸入輸出接口258,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)241,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。下述圖3、圖5-7所示實(shí)施例中所述的由服務(wù)器所執(zhí)行的消息推送方法可以基于該圖2所示的服務(wù)器結(jié)構(gòu)。

圖3是根據(jù)一示例性實(shí)施例示出的一種消息推送方法的流程圖。該消息推送方法的適用范圍和執(zhí)行主體,例如,該方法用于圖1所示實(shí)施環(huán)境的服務(wù)器110,該消息推送方法用于實(shí)現(xiàn)進(jìn)程的消息推送過程,該進(jìn)程包括多個(gè)線程。如圖3所示,該消息推送方法可以由服務(wù)器110完成,該方法可以包括以下步驟。

在步驟s310中,接收為多個(gè)消息接收端推送消息的觸發(fā)指令,所述多個(gè)消息接收端分散連接至所述多個(gè)線程上;

以具體場(chǎng)景舉例來(lái)說(shuō),如即時(shí)通信需要進(jìn)行群發(fā)消息時(shí),或者游戲結(jié)束需要向參與游戲的多個(gè)客戶端推送游戲結(jié)果的消息時(shí),又或者到了某個(gè)設(shè)定的時(shí)間點(diǎn),需要統(tǒng)一向所有連接的客戶端發(fā)送消息時(shí),服務(wù)器的消息推送進(jìn)程接收為多個(gè)消息接收端推送消息的觸發(fā)指令。其中,該觸發(fā)指令可以由客戶端向即時(shí)服務(wù)器發(fā)送,觸發(fā)即時(shí)通信服務(wù)器的消息推送進(jìn)程,從而實(shí)現(xiàn)消息推送?;蛘?,該觸發(fā)指令也可以由游戲服務(wù)器向消息服務(wù)器發(fā)送,觸發(fā)消息服務(wù)器的消息推送進(jìn)程,從而實(shí)現(xiàn)消息推送。

其中,該多個(gè)消息接收端可以是需要進(jìn)行群發(fā)消息的多個(gè)客戶端,也可以是一起參與游戲的多個(gè)客戶端。進(jìn)程根據(jù)可用虛擬內(nèi)存的大小,創(chuàng)建多個(gè)線程,多個(gè)消息接收端分散連接至多個(gè)線程上。換句話說(shuō),多個(gè)消息接收端不會(huì)全部連接在同一個(gè)線程上。如圖4所示,根據(jù)消息接收端的數(shù)量,可以將消息接收端平均分配到不同的線程上。例如,每個(gè)線程連接四個(gè)消息接收端。

圖5是對(duì)圖3對(duì)應(yīng)實(shí)施例的步驟s310的細(xì)節(jié)進(jìn)行描述的流程示意圖,如圖5所示,步驟s310具體包括:

在步驟s311中,接收虛擬場(chǎng)景中事件觸發(fā)而生成的觸發(fā)指令;

需要說(shuō)明的是,當(dāng)多個(gè)消息接收端是一起參與游戲的多個(gè)客戶端時(shí),虛擬場(chǎng)景中事件可以是游戲中的某個(gè)人物角色失去生命值、某個(gè)人物角色撿到寶貝、各個(gè)玩家當(dāng)前的游戲比分等。當(dāng)虛擬場(chǎng)景中出現(xiàn)上述事件時(shí),服務(wù)器進(jìn)程接收這些由這些事件觸發(fā)生成的觸發(fā)指令。

在步驟s312中,根據(jù)所述觸發(fā)指令建立所述多個(gè)線程與所述消息接收端之間的連接。

其中,該觸發(fā)指令可以包括消息接收端的數(shù)量,地址等信息。具體的,服務(wù)器的消息推送進(jìn)程在接收到觸發(fā)指令后,根據(jù)該觸發(fā)指令指示的消息接收端的地址,可以建立各個(gè)線程與各個(gè)消息接收端之間的連接。

舉例來(lái)說(shuō),假設(shè)線程的數(shù)量為4個(gè),編號(hào)為1-4;消息接收端的數(shù)量為16個(gè),編號(hào)為1-16。那么各個(gè)消息接收端和各個(gè)線程的連接關(guān)系可以是將編號(hào)為1-4的消息接收端連接至編號(hào)為1的線程上。將編號(hào)為5-8的消息接收端連接至編號(hào)為2的線程上,依次類推。

在步驟s330中,根據(jù)所述觸發(fā)指令,確定每一線程向所連接消息接收端推送消息的順序;

具體的,服務(wù)器的消息推送進(jìn)程在接收到觸發(fā)指令后,進(jìn)程中的每個(gè)線程分別確定各自線程上所連接的多個(gè)消息接收端的消息推送順序。其中,每個(gè)線程連接的多個(gè)消息接收端的地址可以以消息隊(duì)列的形式排列,從而按照消息隊(duì)列中每個(gè)消息接收端的先后順序,確定每個(gè)線程向多個(gè)消息接收端推送消息的先后順序。

在步驟s350中,所述每一線程均按照所述向所連接消息接收端推送消息的順序,依次為所連接的消息接收端獲取待發(fā)送的消息內(nèi)容并將所述待發(fā)送的消息內(nèi)容推送至所連接的消息接收端。

需要說(shuō)明的是,當(dāng)進(jìn)程接收到觸發(fā)指令,需要進(jìn)行消息推送時(shí),進(jìn)程創(chuàng)建的每個(gè)線程同時(shí)執(zhí)行消息推送操作。每個(gè)線程均按照各自連接的消息接收端的消息推送順序,依次為連接的消息接收端獲取消息內(nèi)容,并將消息內(nèi)容推送至消息接收端。由于多個(gè)線程并發(fā)進(jìn)行消息推送,由此可以縮短完成所有消息接收端的消息推送任務(wù)的時(shí)間。

以圖1所示應(yīng)用場(chǎng)景舉例來(lái)說(shuō),當(dāng)存在多個(gè)客戶端120,需要對(duì)多個(gè)客戶端120同時(shí)推送消息時(shí),現(xiàn)有技術(shù)通過單個(gè)進(jìn)程依次遍歷所有客戶端120進(jìn)行消息推送,當(dāng)客戶端120數(shù)量很大時(shí),遍歷所有客戶端120的耗時(shí)逐漸增大,對(duì)于后推送消息的客戶端120來(lái)言,消息到達(dá)的是消息越來(lái)越差。

本公開上述示例性實(shí)施例提供的消息推送方法,該方法通過單個(gè)進(jìn)程的多個(gè)線程并發(fā)進(jìn)行消息推送,每個(gè)線程可以同時(shí)執(zhí)行消息推送操作,由此可以縮短完成所有消息推送端消息推送任務(wù)的時(shí)間,保證消息到達(dá)的時(shí)效性,解決現(xiàn)有消息到達(dá)的時(shí)效性差的問題。

圖6是對(duì)圖3對(duì)應(yīng)實(shí)施例的步驟s350的細(xì)節(jié)進(jìn)行描述的流程示意圖,每一線程均執(zhí)行步驟s351-步驟s354完成消息推送操作。如圖6所示,步驟s350具體包括:

在步驟s351中,按照所述向所連接消息接收端推送消息的順序,在所連接的消息接收端中選擇消息推送的目標(biāo)接收端;

需要說(shuō)明的是,服務(wù)器推送消息的進(jìn)程包括多個(gè)線程,多個(gè)線程同時(shí)執(zhí)行消息推送操作。其中,每個(gè)線程均可以采用步驟s351-步驟s354的流程實(shí)現(xiàn)消息推送。為了便于說(shuō)明,以某一線程(如線程1)的執(zhí)行過程為例進(jìn)行說(shuō)明,其他線程的執(zhí)行過程可以參照線程1。如圖7所示,線程1在確定了線程上連接的消息接收端的消息推送順序后,選擇第一個(gè)消息接收端作為目標(biāo)接收端;

在步驟s352中,從共享內(nèi)存區(qū)域獲取所述目標(biāo)接收端的待發(fā)送的消息內(nèi)容;

具體的,在選擇了目標(biāo)接收端后,如圖7所示,線程1從共享內(nèi)存區(qū)域中獲取預(yù)先存儲(chǔ)的該目標(biāo)接收端對(duì)應(yīng)的消息內(nèi)容。由于從共享內(nèi)存中讀取消息內(nèi)容要比從db數(shù)據(jù)庫(kù)中讀取消息內(nèi)容的速度快很多,由此,每個(gè)線程從共享內(nèi)存中獲取消息內(nèi)容進(jìn)一步提高了消息推送性能,縮短了消息推送時(shí)間。

需要說(shuō)明的是,在步驟s310之后,本公開示例性實(shí)施例提供的方法還可以包括以下步驟:

在步驟s321中,根據(jù)所述觸發(fā)指令,獲得對(duì)應(yīng)于所述消息接收端的待發(fā)送的消息內(nèi)容;

其中,每個(gè)消息接收端的消息內(nèi)容可以相同也可以不同,每個(gè)消息接收端對(duì)應(yīng)的消息內(nèi)容可以通過現(xiàn)有的算法計(jì)算得到。舉例來(lái)說(shuō),根據(jù)可以游戲的比賽結(jié)果,向不同的消息接收端推送不同的獎(jiǎng)勵(lì)品、比分、名詞等消息內(nèi)容。這些消息內(nèi)容的計(jì)算方式可以采用現(xiàn)有技術(shù)進(jìn)行,對(duì)此不作限定。

在步驟s322中:按照所述消息接收端所連接的線程,將對(duì)應(yīng)于所述消息接收端的待發(fā)送的消息內(nèi)容存儲(chǔ)至所述線程對(duì)應(yīng)的共享內(nèi)存區(qū)域。

需要解釋的是,為了進(jìn)一步提高從共享內(nèi)存中讀取消息內(nèi)容的速度,事先往共享內(nèi)存中存儲(chǔ)消息內(nèi)容時(shí),可以將消息內(nèi)容進(jìn)行分類。將同一個(gè)線程所對(duì)應(yīng)消息接收端的消息內(nèi)容存儲(chǔ)共享內(nèi)存的同一個(gè)區(qū)域。由此可以避免每個(gè)線程從所有消息內(nèi)存中遍歷查找所需的消息內(nèi)容。如圖4所示,共享內(nèi)存可以包括多個(gè)存儲(chǔ)塊,一個(gè)存儲(chǔ)塊代表共享內(nèi)存的一個(gè)區(qū)域,每個(gè)存儲(chǔ)塊分別對(duì)應(yīng)不同的線程。

具體的,服務(wù)器的消息推送進(jìn)程在獲得了每個(gè)消息接收端對(duì)應(yīng)的消息內(nèi)容后,按照消息接收端所連接的線程,將連接同一個(gè)線程的消息接收端對(duì)應(yīng)的消息內(nèi)容存儲(chǔ)在共存內(nèi)存的同一個(gè)存儲(chǔ)塊中。每個(gè)存儲(chǔ)塊都有各自的地址信息,根據(jù)每個(gè)線程對(duì)應(yīng)的存儲(chǔ)塊的地址信息,可以將每個(gè)線程所對(duì)應(yīng)的消息接收端的消息內(nèi)容存儲(chǔ)在指定地址的存儲(chǔ)塊中。

舉例來(lái)說(shuō),連接線程1的所有消息接收端的消息內(nèi)容存儲(chǔ)至線程1對(duì)應(yīng)的共享內(nèi)存區(qū)域,如圖4所示的第一個(gè)存儲(chǔ)塊,從而線程1在為連接的消息接收端獲取消息內(nèi)容時(shí),只需從第一個(gè)存儲(chǔ)塊中查找消息內(nèi)容,無(wú)需遍歷共享內(nèi)存中的所有消息,由此來(lái)縮短消息推送的時(shí)間。

在上述示例性實(shí)施例的基礎(chǔ)上,步驟s352從共享內(nèi)存區(qū)域獲取所述目標(biāo)接收端的待發(fā)送的消息內(nèi)容,包括:

從所述目標(biāo)接收端所連接線程對(duì)應(yīng)的共享內(nèi)存區(qū)域,獲取為所述目標(biāo)接收端存儲(chǔ)的待發(fā)送的消息內(nèi)容。

舉例來(lái)說(shuō),線程1選擇目標(biāo)接收端后,線程1可以從對(duì)應(yīng)的第一個(gè)存儲(chǔ)塊中,為該目標(biāo)接收端獲取對(duì)應(yīng)的消息內(nèi)容。線程2可以從對(duì)應(yīng)的第二個(gè)存儲(chǔ)塊中,為線程2選擇的目標(biāo)接收端獲取對(duì)應(yīng)的消息內(nèi)容,依次類推。

在步驟s353中,向所述目標(biāo)接收端推送所述待發(fā)送的消息內(nèi)容;

以線程1舉例來(lái)說(shuō),如圖7所示,線程1獲取到目標(biāo)接收端對(duì)應(yīng)的消息內(nèi)容后,向目標(biāo)接收端推送該消息內(nèi)容。當(dāng)然,在線程1推送消息的同時(shí),其他線程也在進(jìn)行消息推送操作。

在步驟s354中,根據(jù)所述向所連接消息接收端推送消息的順序判斷是否存在下一目標(biāo)接收端,如果為是,則返回步驟s351按照所述向所連接消息接收端推送消息的順序,在所連接的消息接收端中選擇消息推送的目標(biāo)接收端,如果為否,則結(jié)束所在線程的消息推送操作。

具體的,如圖7所示,線程1向第一個(gè)消息接收端(即目標(biāo)接收端)推送消息內(nèi)容后,判斷是否是最后一個(gè)消息接收端,即是否存在下一個(gè)目標(biāo)接收端。如果是最后一個(gè)消息接收端,線程1的消息推送任務(wù)結(jié)束。如果存在下一個(gè)消息接收端,即存在下一個(gè)目標(biāo)接收端,線程1選擇下一個(gè)消息接收端作為目標(biāo)接收端,然后繼續(xù)為該目標(biāo)接收端獲取消息內(nèi)容然后進(jìn)行消息推送,直到為線程1上的所有消息接收端完成消息推送任務(wù)。

上述示例性實(shí)施例中,每個(gè)線程上的消息接收端對(duì)應(yīng)的消息內(nèi)容存儲(chǔ)在每個(gè)線程對(duì)應(yīng)的共享內(nèi)存區(qū)域,由此每個(gè)線程無(wú)需遍歷共享內(nèi)存中的所有消息,只需與線程對(duì)應(yīng)的共享內(nèi)存區(qū)域中查找所需的消息內(nèi)容即可,通過縮短獲取消息內(nèi)容的時(shí)間,進(jìn)一步提高消息推送的時(shí)效性。

下述為本公開裝置實(shí)施例,可以用于執(zhí)行本公開上述服務(wù)器110執(zhí)行的消息推送方法實(shí)施例。對(duì)于本公開裝置實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本公開消息推送方法實(shí)施例。

圖8是根據(jù)一示例性實(shí)施例示出的一種消息推送裝置的框圖,該消息推送裝置可以用于圖1所示實(shí)施環(huán)境的服務(wù)器110中,執(zhí)行圖3、圖5-7任一所示的消息推送方法的全部或者部分步驟,所述裝置用于進(jìn)行消息推送,所述裝置進(jìn)行消息推送的進(jìn)程包括多個(gè)線程。如圖8所示,該消息推送裝置包括但不限于:指令接收模塊810和線程觸發(fā)模塊830;

指令接收模塊810,用于接收為多個(gè)消息接收端推送消息的觸發(fā)指令,所述多個(gè)消息接收端分散連接至所述多個(gè)線程上;

線程觸發(fā)模塊830,用于根據(jù)所述觸發(fā)指令,確定每一線程向所連接消息接收端推送消息的順序;

其中,所述每一線程均按照所述向所連接消息接收端推送消息的順序,依次為所連接的消息接收端獲取待發(fā)送的消息內(nèi)容并將所述待發(fā)送的消息內(nèi)容推送至所連接的消息接收端。

上述裝置中各個(gè)模塊的功能和作用的實(shí)現(xiàn)過程具體詳見上述消息推送方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。

指令接收模塊810比如可以是圖2中的某一個(gè)物理結(jié)構(gòu)輸入輸出接口258。

線程觸發(fā)模塊830也可以是功能模塊,用于執(zhí)行上述消息推送方法中的對(duì)應(yīng)步驟??梢岳斫?,這些模塊可以通過硬件、軟件、或二者結(jié)合來(lái)實(shí)現(xiàn)。當(dāng)以硬件方式實(shí)現(xiàn)時(shí),這些模塊可以實(shí)施為一個(gè)或多個(gè)硬件模塊,例如一個(gè)或多個(gè)專用集成電路。當(dāng)以軟件方式實(shí)現(xiàn)時(shí),這些模塊可以實(shí)施為在一個(gè)或多個(gè)處理器上執(zhí)行的一個(gè)或多個(gè)計(jì)算機(jī)程序,例如圖2的中央處理器222所執(zhí)行的存儲(chǔ)在存儲(chǔ)器232中的程序。

可選的,上述指令接收模塊810可以包括但不限于:

指令接收單元,用于接收虛擬場(chǎng)景中事件觸發(fā)而生成的觸發(fā)指令;

連接建立單元,用于根據(jù)所述觸發(fā)指令建立所述多個(gè)線程與所述消息接收端之間的連接。

如圖9所示,在圖8對(duì)應(yīng)實(shí)施例的基礎(chǔ)上,本公開提供的消息推送裝置還可以包括但不限于:目標(biāo)選擇模塊910、消息獲取模塊930、消息推送模塊950以及循環(huán)推送模塊970;

目標(biāo)選擇模塊910,用于按照所述向所連接消息接收端推送消息的順序,在所連接的消息接收端中選擇消息推送的目標(biāo)接收端;

消息獲取模塊930,用于從共享內(nèi)存區(qū)域獲取所述目標(biāo)接收端的待發(fā)送的消息內(nèi)容;

消息推送模塊950,用于向所述目標(biāo)接收端推送所述待發(fā)送的消息內(nèi)容;

循環(huán)推送模塊970,用于根據(jù)所述向所連接消息接收端推送消息的順序判斷是否存在下一目標(biāo)接收端,如果為是,繼續(xù)由目標(biāo)選擇模塊910按照所述向所連接消息接收端推送消息的順序,在所連接的消息接收端中選擇消息推送的目標(biāo)接收端,如果為否,則結(jié)束所在線程的消息推送操作。

可選的,所述裝置還可以包括但不限于:

消息獲得模塊,用于根據(jù)所述觸發(fā)指令,獲得對(duì)應(yīng)于所述消息接收端的待發(fā)送的消息內(nèi)容;

消息存儲(chǔ)模塊,用于按照所述消息接收端所連接的線程,將對(duì)應(yīng)于所述消息接收端的待發(fā)送的消息內(nèi)容存儲(chǔ)至所述線程對(duì)應(yīng)的共享內(nèi)存區(qū)域。

可選的,所述消息獲取模塊930可以包括但不限于:

消息獲取單元,用于從所述目標(biāo)接收端所連接線程對(duì)應(yīng)的共享內(nèi)存區(qū)域,獲取為所述目標(biāo)接收端存儲(chǔ)的待發(fā)送的消息內(nèi)容。

可選的,本公開還提供一種電子設(shè)備,該電子設(shè)備可以用于圖1所示實(shí)施環(huán)境的服務(wù)器110中,執(zhí)行圖3、圖5-7任一所示的消息推送方法的全部或者部分步驟。所述裝置包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器被配置為執(zhí)行上述任一實(shí)施例所述的消息推送方法。

該實(shí)施例中的裝置的處理器執(zhí)行操作的具體方式已經(jīng)在有關(guān)該消息推送方法的實(shí)施例中執(zhí)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。

在示例性實(shí)施例中,還提供了一種存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如可以為包括指令的臨時(shí)性和非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序可由服務(wù)器200的中央處理器222執(zhí)行以完成上述任一實(shí)施例所述的消息推送方法。

本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來(lái)完成,也可以通過程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。

應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍執(zhí)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1