本發(fā)明涉及互聯(lián)網(wǎng)通信技術(shù)領(lǐng)域,特別是涉及一種網(wǎng)頁(yè)通訊方法及裝置。
背景技術(shù):
互聯(lián)網(wǎng)技術(shù)的發(fā)展使我們足不出戶就可以進(jìn)行即時(shí)通訊,例如,與好友聊天、與合作伙伴談判等等。目前,基于需要下載安裝的即時(shí)通訊工具,如MSN、QQ、網(wǎng)易泡泡等為人們的溝通、信息交流提供了新的途徑。通過(guò)這些工具,可以讓人和人之間的交流成本大大降低,且提高了便利性和效率。但是使用上述即時(shí)通訊工具必須下載安裝相對(duì)應(yīng)的客戶端軟件,需要較為復(fù)雜的配置過(guò)程和了解熟悉的過(guò)程,而且下載的軟件也會(huì)占用內(nèi)存空間。所以在此基礎(chǔ)上,人們就有了基于網(wǎng)頁(yè)可以實(shí)現(xiàn)即時(shí)通訊的需求,期待一打開(kāi)網(wǎng)頁(yè)就可以即時(shí)通訊,無(wú)需下載任何軟件。
現(xiàn)有的基于網(wǎng)頁(yè)的即時(shí)通訊方法是基于HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)的。無(wú)論服務(wù)器端有沒(méi)有客戶端待接收的消息,客戶端都需要主動(dòng)地、不停地向服務(wù)器發(fā)送請(qǐng)求;而服務(wù)器端需要在接收到該客戶端發(fā)送的請(qǐng)求、且同時(shí)存在客戶端待接收的消息時(shí),向客戶端發(fā)送該消息,以使客戶端接收該消息。
可以看出,現(xiàn)有的基于網(wǎng)頁(yè)的即時(shí)通訊方法需要客戶端不斷地向服務(wù)器發(fā)送請(qǐng)求才能獲得消息,這將大量占用與服務(wù)器的連接線程,造成服務(wù)器資源和網(wǎng)絡(luò)請(qǐng)求資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種網(wǎng)頁(yè)通訊方法及裝置,以實(shí)現(xiàn)在網(wǎng)頁(yè)通訊過(guò)程中,節(jié)省服務(wù)器資源和網(wǎng)絡(luò)請(qǐng)求資源。具體技術(shù)方案如下:
一方面,本發(fā)明實(shí)施例提供了一種網(wǎng)頁(yè)通訊方法,應(yīng)用于網(wǎng)頁(yè)服務(wù)器,該方法包括:
接收源用戶發(fā)送的消息,其中,所述消息包括:目標(biāo)用戶的身份標(biāo)識(shí)號(hào)ID和源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù);
根據(jù)所述目標(biāo)用戶的ID,將所述消息數(shù)據(jù)推送至所述目標(biāo)用戶。
可選的,所述網(wǎng)頁(yè)服務(wù)器包括:支持websocket協(xié)議的網(wǎng)頁(yè)服務(wù)器;
所述根據(jù)所述目標(biāo)用戶的ID,將所述消息數(shù)據(jù)推送至所述目標(biāo)用戶包括:
通過(guò)websocket協(xié)議,根據(jù)所述目標(biāo)用戶的ID,將所述消息數(shù)據(jù)推送至所述目標(biāo)用戶。
可選的,所述接收源用戶發(fā)送的消息之后,所述方法還包括:
保存源用戶發(fā)送的消息。
可選的,所述保存源用戶發(fā)送的消息,包括:
分別保存所述消息至數(shù)據(jù)庫(kù)和緩存中。
可選的,所述根據(jù)所述目標(biāo)用戶的ID,將所述消息數(shù)據(jù)推送至所述目標(biāo)用戶之前,所述方法還包括:
判斷所述緩存中是否存在所述消息;
如果是,從所述緩存中獲取所述消息;如果否,從所述數(shù)據(jù)庫(kù)中獲取所述消息。
另一方面,本發(fā)明實(shí)施例還提供了一種網(wǎng)頁(yè)通訊裝置,包括:
接收模塊,用于接收源用戶發(fā)送的消息,其中,所述消息包括:目標(biāo)用戶的身份標(biāo)識(shí)號(hào)ID和源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù);
推送模塊,用于根據(jù)所述目標(biāo)用戶的ID,將所述消息數(shù)據(jù)推送至所述目標(biāo)用戶。
可選的,所述網(wǎng)頁(yè)服務(wù)器包括:支持websocket協(xié)議的網(wǎng)頁(yè)服務(wù)器;
所述推送模塊,具體用于通過(guò)websocket協(xié)議,根據(jù)所述目標(biāo)用戶的ID,將所述消息數(shù)據(jù)推送至所述目標(biāo)用戶。
可選的,所述裝置還包括:
保存模塊,用于保存源用戶發(fā)送的消息。
可選的,所述保存模塊,具體用于分別保存所述消息至數(shù)據(jù)庫(kù)和緩存中。
可選的,所述裝置還包括:
判斷模塊,用于判斷所述緩存中是否存在所述消息;
獲取模塊,用于如果所述緩存中存在所述消息,從所述緩存中獲取所述消息;如果所述緩存中不存在所述消息,從所述數(shù)據(jù)庫(kù)中獲取所述消息。
本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法及裝置,可以通過(guò)網(wǎng)頁(yè)服務(wù)器端接收源用戶發(fā)送的消息,其中,消息包括:目標(biāo)用戶的身份標(biāo)識(shí)號(hào)ID和源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù);網(wǎng)頁(yè)服務(wù)器端按照目標(biāo)用戶的ID,將消息數(shù)據(jù)推送至目標(biāo)用戶??梢钥闯觯景l(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法及裝置中,網(wǎng)頁(yè)服務(wù)器在接收到消息數(shù)據(jù)時(shí),按照目標(biāo)用戶的ID,主動(dòng)將源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù)推送至目標(biāo)用戶,不需要目標(biāo)用戶向網(wǎng)頁(yè)服務(wù)器發(fā)送請(qǐng)求而獲得消息數(shù)據(jù),節(jié)省了服務(wù)器資源和網(wǎng)絡(luò)請(qǐng)求資源;同時(shí),減少了請(qǐng)求的過(guò)程,可以提高網(wǎng)頁(yè)通訊的即時(shí)性。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的用戶與網(wǎng)頁(yè)服務(wù)器的交互流程圖;
圖3為本發(fā)明實(shí)施例中從緩存中讀取數(shù)據(jù)的流程圖;
圖4為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置的一種結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置的另一種結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置的另一種結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法的流程圖,參照?qǐng)D1對(duì)本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法進(jìn)行詳細(xì)說(shuō)明,該方法包括:
步驟101,接收源用戶發(fā)送的消息,其中,該消息包括:目標(biāo)用戶的身份標(biāo)識(shí)號(hào)ID和源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù)。
本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法,可以應(yīng)用于網(wǎng)頁(yè)服務(wù)器。具體地,該網(wǎng)頁(yè)服務(wù)器可以為臺(tái)式計(jì)算機(jī)、便攜式計(jì)算機(jī)、智能移動(dòng)設(shè)備等。
多個(gè)用戶通訊過(guò)程中,每個(gè)用戶的ID(Identification,身份標(biāo)識(shí)號(hào))是該用戶在通訊過(guò)程中的唯一標(biāo)識(shí)。例如,本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法應(yīng)用于聊天室,多個(gè)用戶聊天時(shí),每個(gè)用戶通過(guò)其自身的ID登錄聊天室,然后進(jìn)行通訊聊天。
其中,需要說(shuō)明的是,ID是用戶在聊天室中唯一的身份標(biāo)識(shí)。源用戶需要或者想要與目標(biāo)用戶進(jìn)行聊天時(shí),可以向網(wǎng)頁(yè)服務(wù)器發(fā)送包含其自身ID以及消息數(shù)據(jù)的消息,以使網(wǎng)頁(yè)服務(wù)器接收源用戶發(fā)送的消息,進(jìn)而將消息數(shù)據(jù)主動(dòng)推送給目標(biāo)用戶。
步驟102,根據(jù)目標(biāo)用戶的ID,將消息數(shù)據(jù)推送至目標(biāo)用戶。
網(wǎng)頁(yè)服務(wù)器接收到源用戶發(fā)送的消息后,可以將該消息中包含的、源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù)主動(dòng)推送給目標(biāo)用戶。不難理解的是,通訊過(guò)程中可能有多個(gè)用戶,網(wǎng)頁(yè)服務(wù)器在接收到消息后,可以根據(jù)消息中包含的目標(biāo)用戶ID的數(shù)目,將消息中、源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù)發(fā)送給對(duì)應(yīng)的一個(gè)或多個(gè)用戶。
本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法中,網(wǎng)頁(yè)服務(wù)器通過(guò)源用戶發(fā)送的消息中目標(biāo)用戶的ID可以知道,源用戶需要或者想要發(fā)送消息給哪個(gè)目標(biāo)用戶,進(jìn)而可以根據(jù)目標(biāo)用戶的ID,對(duì)應(yīng)地將消息推送給目標(biāo)用戶。實(shí)際應(yīng)用過(guò)程中,目標(biāo)用戶可以為1個(gè),可以為多個(gè)或者目標(biāo)用戶可以為除源用戶之外的其他所有用戶。例如,兩個(gè)私聊、多人群聊等。當(dāng)然,不難理解的是,網(wǎng)頁(yè)服務(wù)器也可以同時(shí)接收多個(gè)源用戶發(fā)送的消息,進(jìn)而對(duì)應(yīng)地針對(duì)源用戶發(fā)送的消息中目標(biāo)用戶的ID,將消息中的消息數(shù)據(jù)推送至目標(biāo)用戶。
本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法,網(wǎng)頁(yè)服務(wù)器通過(guò)接收源用戶發(fā)送的消息,然后將接收到的消息中的消息數(shù)據(jù),根據(jù)目標(biāo)用戶的ID,推送至對(duì)應(yīng)的目標(biāo)用戶。對(duì)于網(wǎng)頁(yè)服務(wù)器來(lái)說(shuō),不再需要在等待到用戶發(fā)送的請(qǐng)求時(shí),才將消息數(shù)據(jù)發(fā)送給目標(biāo)用戶;而是在接收到源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù)時(shí),主動(dòng)將消息數(shù)據(jù)推送給目標(biāo)用戶;對(duì)于用戶來(lái)說(shuō),不再需要不停地向網(wǎng)頁(yè)服務(wù)器發(fā)送請(qǐng)求,即可獲得網(wǎng)頁(yè)服務(wù)器主動(dòng)推送的消息數(shù)據(jù)。如此可以減少占用與網(wǎng)頁(yè)服務(wù)器的連接線程,節(jié)省服務(wù)器資源和網(wǎng)絡(luò)請(qǐng)求資源。
本發(fā)明實(shí)施例一種可選的實(shí)施例中,網(wǎng)頁(yè)服務(wù)器可以包括:支持websocket協(xié)議的網(wǎng)頁(yè)服務(wù)器。
websocket協(xié)議是HTML5(HyperText Markup Language 5.0,超文本標(biāo)記語(yǔ)言5.0)中一種新的協(xié)議。通過(guò)websocket協(xié)議可以實(shí)現(xiàn)瀏覽器與服務(wù)器的全雙工通信。其中,瀏覽器和服務(wù)器只需要做一個(gè)握手的動(dòng)作,然后,瀏覽器和服務(wù)器之間就形成了一條快速通道,兩者之間就直接可以進(jìn)行數(shù)據(jù)互相傳送。
本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法,為了實(shí)現(xiàn)網(wǎng)頁(yè)服務(wù)器在接收到源用戶發(fā)送的消息時(shí),將消息中的消息數(shù)據(jù)主動(dòng)推送至目標(biāo)用戶,實(shí)際應(yīng)用過(guò)程中可以利用websocket協(xié)議進(jìn)行通訊。具體地,可以將網(wǎng)頁(yè)服務(wù)器配置為支持websocket協(xié)議的網(wǎng)頁(yè)服務(wù)器。
本發(fā)明實(shí)施例一種可實(shí)現(xiàn)方式中,通過(guò)采用當(dāng)前最流行的網(wǎng)站開(kāi)發(fā)語(yǔ)言PHP(Hypertext Preprocessor,超級(jí)文本預(yù)處理語(yǔ)言)和swoole框架,通過(guò)手動(dòng)安裝swoole,擴(kuò)展配置網(wǎng)頁(yè)服務(wù)器webserver,進(jìn)而配置完成的網(wǎng)頁(yè)服務(wù)器,可以支持網(wǎng)頁(yè)通訊方法利用websocket協(xié)議進(jìn)行通訊。
其中,需要說(shuō)明的是,swoole框架是一種PHP高級(jí)網(wǎng)頁(yè)開(kāi)發(fā)框架,利用swoole框架配置網(wǎng)頁(yè)服務(wù)器可以提高網(wǎng)頁(yè)開(kāi)發(fā)的速率,使得可以利用最少的性能損耗,換取最大的開(kāi)發(fā)效率。通過(guò)swoole框架配置網(wǎng)頁(yè)服務(wù)器,可以為用戶之間的即時(shí)通訊提供基礎(chǔ),保證了用戶之間通訊的實(shí)時(shí)性,為用戶提供異步、并行、高性能的網(wǎng)絡(luò)通訊服務(wù)。
相應(yīng)的,當(dāng)網(wǎng)頁(yè)服務(wù)器為支持websocket協(xié)議的網(wǎng)頁(yè)服務(wù)器時(shí),在本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法的一種可選的實(shí)施例中,網(wǎng)頁(yè)服務(wù)器根據(jù)目標(biāo)用戶的ID,將消息數(shù)據(jù)推送至目標(biāo)用戶時(shí),可以通過(guò)websocket協(xié)議,根據(jù)目標(biāo)用戶的ID,將消息數(shù)據(jù)推送至目標(biāo)用戶。
網(wǎng)頁(yè)服務(wù)器在接收到源用戶發(fā)送的消息時(shí),主動(dòng)地將該消息推送至目標(biāo)用戶,不需要目標(biāo)用戶發(fā)送請(qǐng)求而獲得消息,不僅節(jié)省了資源浪費(fèi),而且提高了通訊過(guò)程的即時(shí)性。
如圖2所示為本發(fā)明實(shí)施例提供的用戶與網(wǎng)頁(yè)服務(wù)器的交互流程圖。具體地:首先,源用戶通過(guò)websocket發(fā)送消息;接著,網(wǎng)頁(yè)服務(wù)器接收該消息;然后,網(wǎng)頁(yè)服務(wù)器根據(jù)源用戶發(fā)送的消息中的目標(biāo)用戶的ID,匹配目標(biāo)用戶;最后,網(wǎng)頁(yè)服務(wù)器將消息中的消息數(shù)據(jù),推送給匹配到的目標(biāo)用戶。
其中,需要說(shuō)明的是,本發(fā)明實(shí)施例提供的通訊方法,可以支持多個(gè)源用戶同時(shí)向網(wǎng)頁(yè)服務(wù)器發(fā)送消息。如圖2中所示,源用戶1和源用戶2可以同時(shí)向網(wǎng)頁(yè)服務(wù)器發(fā)送消息,對(duì)應(yīng)地,網(wǎng)頁(yè)服務(wù)器可以根據(jù)源用戶1和源用戶2發(fā)送消息中的目標(biāo)用戶的ID,匹配對(duì)應(yīng)的目標(biāo)用戶1和目標(biāo)用戶2,進(jìn)而將消息推送至目標(biāo)用戶1和目標(biāo)用戶2。
另外,需要說(shuō)明的是,在通訊的過(guò)程中,消息數(shù)據(jù)可以顯示在通訊雙方的聊天界面中。本發(fā)明實(shí)施例一種可實(shí)現(xiàn)方式中,通訊雙方數(shù)據(jù)交互可以通過(guò)JSON(JavaScript Object Notation,輕量級(jí)數(shù)據(jù)交換格式)和XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)完成。而因?yàn)镴SON相比較于XML有著更高的數(shù)據(jù)傳輸效率和易讀性,所以實(shí)際應(yīng)用過(guò)程中,通常采用JSON實(shí)現(xiàn)通訊雙方的數(shù)據(jù)交互。
可以理解,在實(shí)際應(yīng)用中,網(wǎng)頁(yè)服務(wù)器可能出現(xiàn)負(fù)載過(guò)大的情況。例如,網(wǎng)頁(yè)服務(wù)器一般情況下都是并行處理源用戶發(fā)送的消息和向目標(biāo)用戶推送消息的。如此使得,網(wǎng)頁(yè)服務(wù)器可能會(huì)同時(shí)接收到大量源用戶發(fā)送的消息,也可能同時(shí)需要向大量目標(biāo)用戶推送消息,致使網(wǎng)頁(yè)服務(wù)器出現(xiàn)負(fù)載過(guò)大的情況。
另外,同時(shí)對(duì)這些大量消息進(jìn)行處理也可能會(huì)超過(guò)網(wǎng)頁(yè)服務(wù)器的即時(shí)處理能力,使得網(wǎng)頁(yè)服務(wù)器癱瘓。所以為了減輕網(wǎng)頁(yè)服務(wù)器的負(fù)載,也避免網(wǎng)頁(yè)服務(wù)器出現(xiàn)癱瘓的情況,在實(shí)際的應(yīng)用過(guò)程中,網(wǎng)頁(yè)服務(wù)器可以將接收到的源用戶發(fā)送的消息保存下來(lái),在需要向目標(biāo)用戶發(fā)送時(shí),直接從保存的數(shù)據(jù)中讀取所需要的消息,進(jìn)而將消息推送至對(duì)應(yīng)的目標(biāo)用戶。
需要說(shuō)明的是,網(wǎng)頁(yè)服務(wù)器可以有選擇地將部分用戶的消息進(jìn)行保存。例如,可以按照消息發(fā)送的時(shí)間順序,即時(shí)處理時(shí)間序列在前的消息,將時(shí)間序列在后的消息保存。
具體的,可以將消息保存至數(shù)據(jù)庫(kù)或者緩存中。本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊方法中,可以將接收到的消息同時(shí)保存至數(shù)據(jù)庫(kù)和緩存中。從而,在進(jìn)行消息推送時(shí),網(wǎng)頁(yè)服務(wù)器可以根據(jù)實(shí)際需求,從數(shù)據(jù)庫(kù)或者緩存中讀取源用戶發(fā)送的消息,進(jìn)而將消息推送至目標(biāo)用戶。
具體地,源用戶首先發(fā)送消息;其次,網(wǎng)頁(yè)服務(wù)器接收該消息;然后,網(wǎng)頁(yè)服務(wù)器將接收到的消息分別保存至緩存和數(shù)據(jù)庫(kù)中,在需要向目標(biāo)用戶推送消息時(shí),從緩存或數(shù)據(jù)庫(kù)中讀取消息。之后,網(wǎng)頁(yè)服務(wù)器可以根據(jù)源用戶發(fā)送的消息中的目標(biāo)用戶的ID,匹配目標(biāo)用戶;最后,網(wǎng)頁(yè)服務(wù)器將消息中的消息數(shù)據(jù),推送給匹配到的目標(biāo)用戶。
其中,這里所說(shuō)的數(shù)據(jù)庫(kù)可以是SQL SERVER數(shù)據(jù)庫(kù)、My SQL數(shù)據(jù)庫(kù)、Oracle數(shù)據(jù)庫(kù)以及Hbase數(shù)據(jù)庫(kù)等;緩存可以是存儲(chǔ)系統(tǒng)redis等。
本發(fā)明實(shí)施例一種可實(shí)現(xiàn)方式中,網(wǎng)頁(yè)服務(wù)器在需要向目標(biāo)用戶推送消息時(shí),可以先從緩存讀取消息,如果由于緩存丟失等原因?qū)е聼o(wú)法從緩存中獲取消息時(shí),再?gòu)臄?shù)據(jù)庫(kù)中獲取消息。具體地,可以先判斷緩存中是否存在源用戶向目標(biāo)用戶發(fā)送的消息,緩存中存在該消息時(shí),從緩存中獲取消息;緩存中不存在該消息時(shí),從數(shù)據(jù)庫(kù)中獲取消息。
從緩存中讀取數(shù)據(jù)是一種讀取速度非??斓臄?shù)據(jù)流讀取方式。為了保證通訊的即時(shí)性,在需要向目標(biāo)用戶推送消息數(shù)據(jù)時(shí),首先從緩存中讀取消息,只有在從緩存中無(wú)法獲取消息時(shí),才從數(shù)據(jù)庫(kù)中讀取,如此保證在正常情況下通訊的實(shí)時(shí)性,另外還使得,即使緩存出現(xiàn)問(wèn)題,也能準(zhǔn)確地讀取到消息,保證通訊的準(zhǔn)確性。
圖3為本發(fā)明實(shí)施例從緩存中讀取數(shù)據(jù)的通訊方法流程圖,參照?qǐng)D3,對(duì)從緩存中讀取數(shù)據(jù)進(jìn)行通訊的過(guò)程進(jìn)行詳細(xì)說(shuō)明。
源用戶向網(wǎng)頁(yè)服務(wù)器發(fā)送消息;網(wǎng)頁(yè)服務(wù)器接收消息,并將該消息保存至緩存中。可以理解的是,緩存中保存有不同的源用戶發(fā)送的消息。網(wǎng)頁(yè)服務(wù)器在需要向目標(biāo)用戶發(fā)送消息時(shí),從緩存中對(duì)應(yīng)地讀取該目標(biāo)用戶相關(guān)的消息,并根據(jù)該消息中包括的目標(biāo)用戶ID,將消息數(shù)據(jù)推送給目標(biāo)用戶。
另一方面,本發(fā)明實(shí)施例還提供了一種網(wǎng)頁(yè)通訊裝置,應(yīng)用于網(wǎng)頁(yè)服務(wù)器,圖4為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置的一種結(jié)構(gòu)示意圖,包括:
接收模塊401,用于接收源用戶發(fā)送的消息,其中,消息包括:目標(biāo)用戶的身份標(biāo)識(shí)號(hào)ID和源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù);
推送模塊402,用于根據(jù)目標(biāo)用戶的ID,將消息數(shù)據(jù)推送至目標(biāo)用戶。
本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置,網(wǎng)頁(yè)服務(wù)器通過(guò)接收源用戶發(fā)送的、包含目標(biāo)用戶ID和源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù)的消息,然后將接收到的消息數(shù)據(jù),根據(jù)目標(biāo)用戶的ID,推送至對(duì)應(yīng)的目標(biāo)用戶。網(wǎng)頁(yè)服務(wù)器在接收到、源用戶向目標(biāo)用戶發(fā)送的消息數(shù)據(jù)時(shí),主動(dòng)將消息數(shù)據(jù)推送給目標(biāo)用戶,而不再需要用戶不斷地向網(wǎng)頁(yè)服務(wù)器發(fā)送請(qǐng)求。如此可以減少占用與網(wǎng)頁(yè)服務(wù)器的連接線程,節(jié)省服務(wù)器資源和網(wǎng)絡(luò)請(qǐng)求資源。
可選的,本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置中,網(wǎng)頁(yè)服務(wù)器包括:支持websocket協(xié)議的網(wǎng)頁(yè)服務(wù)器。
可選的,推送模塊402,具體用于通過(guò)websocket協(xié)議,根據(jù)目標(biāo)用戶的ID,將消息數(shù)據(jù)推送至目標(biāo)用戶。
可選的,圖5為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置的另一種結(jié)構(gòu)示意圖,參照?qǐng)D5,本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置還包括:
保存模塊403,用于保存源用戶發(fā)送的消息。
可選的,本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置中,保存模塊403,具體用于分別保存消息至數(shù)據(jù)庫(kù)和緩存中。
可選的,圖6為本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置的另一種結(jié)構(gòu)示意圖,參照?qǐng)D6,本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)通訊裝置還包括:
判斷模塊404,用于判斷緩存中是否存在消息。
獲取模塊405,用于如果緩存中存在消息,從緩存中獲取消息;如果緩存中不存在消息,從數(shù)據(jù)庫(kù)中獲取消息。
需要說(shuō)明的是,本發(fā)明實(shí)施例的裝置是應(yīng)用上述網(wǎng)頁(yè)通訊方法的裝置,則上述網(wǎng)頁(yè)通訊方法的所有實(shí)施例均適用于該裝置,且均能達(dá)到相同或相似的有益效果。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。