專利名稱:聊天服務(wù)器系統(tǒng)、構(gòu)建聊天服務(wù)器系統(tǒng)的方法以及聊天系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)聊天技術(shù),特別是涉及一種聊天服務(wù)器系統(tǒng)、構(gòu)建聊天服務(wù)器系 統(tǒng)的方法以及聊天系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)聊天室是在網(wǎng)絡(luò)上由兩個(gè)或兩個(gè)以上的用戶組成的會(huì)話室,以供用戶間通過(guò) 文字與符號(hào)進(jìn)行實(shí)時(shí)交談、聊天的場(chǎng)所。一種提供網(wǎng)絡(luò)聊天室功能的聊天系統(tǒng)包括客戶端 和ffi服務(wù)器,用戶通過(guò)客戶端的瀏覽器發(fā)送http (HyperText Transfer Protocol,超義本 傳輸協(xié)議)請(qǐng)求,獲取聊天室頁(yè)面進(jìn)行聊天;WEB服務(wù)器為客戶端提供聊天服務(wù)以及進(jìn)行聊天室的管理。
通常,客戶端使用AJAX(Asynchronous JavaScript and XML,異步 Javakript 和 XML)結(jié)合 PHP (Hypertext Preprocesor,超級(jí)文本預(yù)處理語(yǔ)言)/JSP (Java Server Pages, ava服務(wù)器頁(yè)面)等頁(yè)面技術(shù),具體工作方式為客戶端的瀏覽器頁(yè)面通過(guò)發(fā)送 xmlHttpRequest請(qǐng)求,通過(guò)http協(xié)議與TOB服務(wù)器交互,TOB服務(wù)器響應(yīng)請(qǐng)求,返回xml數(shù) 據(jù)對(duì)象,客戶端在瀏覽器下解析對(duì)象顯示。
由于AJAX是一種局部刷新頁(yè)面的技術(shù),其可以減少頁(yè)面刷新的次數(shù),但其本質(zhì)還 是基于http協(xié)議的請(qǐng)求-響應(yīng)操作,也就是說(shuō),AJAX需要通過(guò)定時(shí)訪問(wèn)WEB服務(wù)器來(lái)取得 最新的數(shù)據(jù),比如說(shuō)間隔500毫秒對(duì)WEB服務(wù)器發(fā)起一次請(qǐng)求,不管此時(shí)TOB服務(wù)器端有沒(méi) 有新的數(shù)據(jù),均要對(duì)客戶端請(qǐng)求進(jìn)行響應(yīng),這樣必然會(huì)加重WEB服務(wù)器的負(fù)擔(dān),而當(dāng)WEB服 務(wù)器有數(shù)據(jù)更新的時(shí)候,其卻無(wú)法主動(dòng)向客戶端發(fā)送,只有在收到客戶端的請(qǐng)求時(shí)才能向 客戶端發(fā)送,這樣的請(qǐng)求-響應(yīng)模式難以實(shí)現(xiàn)客戶端高并發(fā)(即多個(gè)客戶端同時(shí)向服務(wù)器 發(fā)送請(qǐng)求)、服務(wù)器端高訪問(wèn)(即服務(wù)器端同時(shí)收到多個(gè)客戶端的訪問(wèn))情況下的實(shí)時(shí)響 應(yīng);另外,AJAX導(dǎo)致客戶端必須等到刷新數(shù)據(jù)的時(shí)候,才能從WEB服務(wù)器取到數(shù)據(jù),沒(méi)到刷 新的時(shí)候,客戶端無(wú)法獲悉WEB服務(wù)器中已更新的數(shù)據(jù),因此,也無(wú)法保證消息實(shí)時(shí)性。
而且,將聊天室的應(yīng)用服務(wù)(包括為客戶端提供聊天服務(wù),以及對(duì)聊天室管理)均 部署WEB服務(wù)器上,由其獨(dú)立完成請(qǐng)求響應(yīng),而未根據(jù)業(yè)務(wù)需求的不同特點(diǎn)搭建分布式服 務(wù),造成服務(wù)器端穩(wěn)定性不可靠。
此外,就客戶終端而言,還存在以下缺陷
AJAX需要由Javakript語(yǔ)言解析xml格式數(shù)據(jù),而不同的瀏覽器對(duì)xml解析方式 的支持不一致,這樣,易出現(xiàn)不同客戶終端間的兼容性問(wèn)題,例如,對(duì)于同樣的xml數(shù)據(jù),不 同客戶終端間顯示出不同的結(jié)果,甚至導(dǎo)致ml數(shù)據(jù)在某些瀏覽器下無(wú)法解析,從而影響 用戶的使用。發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出一種聊天服務(wù)器系統(tǒng)、構(gòu)建聊天服務(wù)器系統(tǒng)的方法以及聊天系統(tǒng),所要解決的技術(shù)問(wèn)題為聊天客戶終端高并發(fā)的情況下,能夠獲得聊天服務(wù)器系統(tǒng) 的實(shí)時(shí)響應(yīng)。
本發(fā)明的目的及解決其技術(shù)問(wèn)題是采用以下技術(shù)方案來(lái)實(shí)現(xiàn)的。依據(jù)本發(fā)明提出 的一種聊天服務(wù)器系統(tǒng),包括=SOCKET服務(wù)器,與多個(gè)聊天客戶終端建立SOCKET連接,并與 所述多個(gè)聊天客戶終端保持連接以向其提供聊天服務(wù);聊天室管理服務(wù)器,用于控制管理 所述SOCKET服務(wù)器和聊天客戶終端。
本發(fā)明的目的及解決其技術(shù)問(wèn)題還可采用以下技術(shù)措施進(jìn)一步實(shí)現(xiàn)。
前述的聊天服務(wù)器系統(tǒng),所述SOCKET服務(wù)器為MINA服務(wù)器。
前述的聊天服務(wù)器系統(tǒng),所述MINA服務(wù)器為多個(gè),該聊天服務(wù)器系統(tǒng)還包括交 換機(jī),連接在所述多個(gè)聊天客戶終端與所述多個(gè)MINA服務(wù)器之間;主JMS服務(wù)器,與所述多 個(gè)MINA服務(wù)器連接;其中,當(dāng)所述MINA服務(wù)器通過(guò)所述交換機(jī)從其連接的聊天客戶終端 接收的消息為私聊消息時(shí),所述MINA服務(wù)器判斷該私聊消息的接收方是否為自身連接的 聊天客戶終端,若是,則將該私聊消息通過(guò)所述交換機(jī)發(fā)送至接收方;若否,則通過(guò)所述主 JMS服務(wù)器將該私聊消息發(fā)送至接收方所屬的MINA服務(wù)器,并由該接收方所屬的MINA服務(wù) 器通過(guò)所述交換機(jī)將該私聊消息發(fā)送至接收方。
前述的聊天服務(wù)器系統(tǒng),還包括緩存服務(wù)器,用于存儲(chǔ)每個(gè)MINA服務(wù)器所連接 的聊天客戶終端信息;所述MINA服務(wù)器通過(guò)該緩存服務(wù)器判斷所述私聊消息的接收方是 否為自身連接的聊天客戶終端。
前述的聊天服務(wù)器系統(tǒng),所述MINA服務(wù)器包括信息存儲(chǔ)單元,用于存儲(chǔ)與該 MINA服務(wù)器連接的聊天客戶終端信息;所述MINA服務(wù)器通過(guò)該信息存儲(chǔ)單元獲取其連接 的聊天客戶終端信息,以將私聊消息發(fā)送至接收方。
前述的聊天服務(wù)器系統(tǒng),當(dāng)所述MINA服務(wù)器從其連接的聊天客戶終端接收的消 息為廣播消息時(shí),所述MINA服務(wù)器將該廣播消息發(fā)送至所述主JMS服務(wù)器,并由所述主JMS 服務(wù)器將所述廣播消息向MINA服務(wù)器廣播,然后由MINA服務(wù)器向其所連接的聊天客戶終端廣播。
前述的聊天服務(wù)器系統(tǒng),所述MINA服務(wù)器還用于對(duì)聊天客戶終端的請(qǐng)求進(jìn)行鑒 權(quán)。
前述的聊天服務(wù)器系統(tǒng),所述主JMS服務(wù)器還用于將來(lái)自所述聊天室管理服務(wù)器 的控制命令發(fā)送至所述MINA服務(wù)器。
前述的聊天服務(wù)器系統(tǒng),該聊天服務(wù)器系統(tǒng)還包括備份JMS服務(wù)器,用于存儲(chǔ)所 述主JMS服務(wù)器未處理的消息,并在所述主JMS服務(wù)器出現(xiàn)故障時(shí),處理未處理的消息。
本發(fā)明的目的及解決其技術(shù)問(wèn)題另外還采用以下技術(shù)方案來(lái)實(shí)現(xiàn)。依據(jù)本發(fā)明提 出的一種構(gòu)建聊天服務(wù)器系統(tǒng)的方法,包括以下步驟
提供SOCKET服務(wù)器,使其與多個(gè)聊天客戶終端建立SOCKET連接,并與所述多個(gè) 聊天客戶終端保持連接以向其提供聊天服務(wù);提供聊天室管理服務(wù)器,以控制管理所述 SOCKET服務(wù)器和聊天客戶終端。
本發(fā)明的目的及解決其技術(shù)問(wèn)題另外還采用以下技術(shù)方案來(lái)實(shí)現(xiàn)。依據(jù)本發(fā)明提 出的一種聊天系統(tǒng),其特征在于,包括前述的聊天服務(wù)器系統(tǒng)以及聊天客戶終端。
由上述技術(shù)方案可知,本發(fā)明具有以下有益效果在聊天客戶終端高并發(fā)的情況下,能夠獲得聊天服務(wù)器系統(tǒng)的實(shí)時(shí)響應(yīng)。
通過(guò)以下參照附圖對(duì)優(yōu)選實(shí)施例的說(shuō)明,本發(fā)明的上述以及其它目的、特征和優(yōu) 點(diǎn)將更加明顯。
圖1為本發(fā)明一實(shí)施例提供的聊天服務(wù)器系統(tǒng)的框圖2為本發(fā)明另一實(shí)施例提供的聊天服務(wù)器系統(tǒng)的框圖3為本發(fā)明一實(shí)施例的連接于同一 MINA服務(wù)器的兩個(gè)聊天客戶終端間私聊的 流程圖4為本發(fā)明一實(shí)施例的連接于不同MINA服務(wù)器的兩個(gè)聊天客戶終端間私聊的 流程圖5為本發(fā)明一實(shí)施例的聊天客戶終端發(fā)布廣播消息的流程圖。
具體實(shí)施方式
下面將詳細(xì)描述本發(fā)明的具體實(shí)施例。應(yīng)當(dāng)注意,這里描述的實(shí)施例只用于舉例 說(shuō)明,并不用于限制本發(fā)明。
請(qǐng)參閱圖1所示,其為本發(fā)明一實(shí)施例提供的聊天服務(wù)器系統(tǒng)的框圖,該實(shí)施例 的聊天服務(wù)器系統(tǒng)1包括=SOCKET服務(wù)器11和聊天室管理服務(wù)器12。其中,SOCKET服務(wù) 器11與多個(gè)聊天客戶終端13建立SOCKET連接,并與多個(gè)聊天客戶終端13保持連接以向 其提供聊天服務(wù),本領(lǐng)域技術(shù)人員知道基于TCP/IP協(xié)議的SOCKET (套接字)連接是比 http協(xié)議更底層的通信標(biāo)準(zhǔn),數(shù)據(jù)通過(guò)SOCKET字節(jié)流傳輸,具有更高的傳輸速率;而且,通 過(guò)SOCKET可以建立SOCKET服務(wù)器11與聊天客戶終端13的長(zhǎng)連接,在長(zhǎng)連接中,SOCKET服 務(wù)器11與聊天客戶終端13間連接建立后一直處于連接狀態(tài)。
這樣,在本實(shí)施例中,SOCKET服務(wù)器11與聊天客戶終端13之間的連接一旦建立, SOCKET服務(wù)器11和聊天客戶終端13都可以隨時(shí)向?qū)Ψ桨l(fā)送數(shù)據(jù),例如,當(dāng)SOCKET服務(wù)器 11發(fā)現(xiàn)某一聊天客戶終端為新數(shù)據(jù)接收方的時(shí)候,便會(huì)主動(dòng)向該聊天客戶終端發(fā)送,而非 像http協(xié)議那樣須等到該聊天客戶終端的請(qǐng)求時(shí),才能將新的數(shù)據(jù)向其發(fā)送,網(wǎng)絡(luò)延遲的 減小是顯而易見(jiàn)的,具有更高的實(shí)時(shí)性;而且,對(duì)于聊天客戶終端而言,也并非向SOCKET服 務(wù)器發(fā)出請(qǐng)求才能接收數(shù)據(jù),從而減輕SOCKET服務(wù)器的負(fù)擔(dān);此外,基于http協(xié)議的通信, 每條信息的發(fā)送都會(huì)包含很多冗余信息,進(jìn)行符合http協(xié)議的包裝,而SOCKET通信不會(huì)有 這些冗余信息,發(fā)送同樣數(shù)量的字符需要傳送的數(shù)據(jù)量更少,這樣就節(jié)省了網(wǎng)絡(luò)帶寬,用戶 感覺(jué)到的是數(shù)據(jù)的發(fā)送和接收更加迅速。因此,即使聊天客戶終端高并發(fā)、聊天服務(wù)器系統(tǒng) 高訪問(wèn)的情況下,也能夠獲得SOCKET服務(wù)器的實(shí)時(shí)響應(yīng)。
聊天室管理服務(wù)器12用于控制管理SOCKET服務(wù)器12和聊天客戶終端13,其可 提供除SOCKET服務(wù)器11所提供的聊天服務(wù)外的其他所有對(duì)聊天室的管理及配置功能,例 如,維護(hù)聊天室信息,公告信息的設(shè)置;維護(hù)敏感關(guān)鍵詞庫(kù)信息;以及聊天室初始化參數(shù)維 護(hù)等。
舉例而言,聊天室管理服務(wù)器12維護(hù)的一些聊天室的信息包括諸如聊天室的房 間列表、一個(gè)房間的人數(shù)等等。聊1客戶終端13通過(guò)請(qǐng)求聊天室管理服務(wù)器12來(lái)獲取這些信息,并且聊天客戶終端13從聊天室管理服務(wù)器12獲得一次上述信息后,就一直可以展 示在客戶終端界面,因此,在一實(shí)施例中,聊天室管理服務(wù)器12與聊天客戶終端13之間為 http連接。
在如圖1所示的實(shí)施例中,將聊天服務(wù)和聊天室的管理分別由SOCKET服務(wù)器11 和聊天室管理服務(wù)器12來(lái)實(shí)現(xiàn),使得管理服務(wù)獨(dú)立于聊天服務(wù),這樣不同的功能服務(wù),合 理分配在不同的服務(wù)器上,實(shí)現(xiàn)了管理與使用的分布式部署,從而提高聊天服務(wù)器系統(tǒng)的 穩(wěn)定性。
在一實(shí)施例中,SOCKET服務(wù)器為基于 MINA(Multipurpose Infrastructurefor Network Applications,網(wǎng)絡(luò)應(yīng)用程序的通用基礎(chǔ)框架)構(gòu)造的MINA服務(wù)器,本領(lǐng)域技術(shù) 人員知道,MINA為現(xiàn)有技術(shù)中的一種網(wǎng)絡(luò)應(yīng)用程序框架,本實(shí)施例中使用其構(gòu)建MINA服務(wù) 器,可具有更高的穩(wěn)定性以保持與聊天客戶終端的長(zhǎng)連接。
請(qǐng)參閱圖2所示,其為本發(fā)明另一實(shí)施例提供的聊天服務(wù)器系統(tǒng)的框圖,本實(shí)施 例的聊天服務(wù)器系統(tǒng)2中,包括多個(gè)MINA服務(wù)器21以構(gòu)成MINA服務(wù)器集群,聊天服務(wù)器 系統(tǒng)2還包括交換機(jī)22和主JMS服務(wù)器23,其中,交換機(jī)22連接在多個(gè)聊天客戶終端13 與多個(gè)MINA服務(wù)器21之間,以實(shí)現(xiàn)負(fù)載均衡;主JMS (Java Message Service, Java消息 服務(wù))服務(wù)器23與多個(gè)MINA服務(wù)器21連接,當(dāng)某一 MINA服務(wù)器通過(guò)交換機(jī)22從其連接 的聊天客戶終端接收的消息為私聊消息(即只有作為接收方的聊天客戶終端能接收到的 消息)時(shí),該MINA服務(wù)器判斷該私聊消息的接收方是否為自身連接的聊天客戶終端,若是, 則將該私聊消息通過(guò)交換機(jī)22發(fā)送至相應(yīng)的作為接收方的聊天客戶終端;若否,則通過(guò)主 JMS服務(wù)器23將該私聊消息發(fā)送至接收方所屬的MINA服務(wù)器,并由該接收方所屬的MINA 服務(wù)器通過(guò)交換機(jī)22將該私聊消息發(fā)送至相應(yīng)的作為接收方的聊天客戶終端,這樣,由主 JMS服務(wù)器23實(shí)現(xiàn)了屬于不同MINA服務(wù)器的聊天客戶終端間的消息同步。
在一實(shí)施例中,該聊天服務(wù)器系統(tǒng)還包括緩存服務(wù)器M,用于存儲(chǔ)每個(gè)MINA服 務(wù)器所連接的聊天客戶終端信息;MINA服務(wù)器可通過(guò)該緩存單元M判斷上述私聊消息的 接收方是否為自身連接的聊天客戶終端,在本實(shí)施例中,將聊天客戶終端信息保存在緩存 服務(wù)器M中,則不需要使用數(shù)據(jù)庫(kù),因?yàn)橛脩敉ㄟ^(guò)聊天客戶終端13登錄了聊天室,就會(huì)有 自己的信息,一旦退出,這個(gè)信息就不再需要,下次再登錄,就是新的信息,這些信息是暫時(shí) 的,所以,不需要數(shù)據(jù)庫(kù)來(lái)保存,而使用緩存服務(wù)器M來(lái)保存。緩存服務(wù)器M還可保存MINA 服務(wù)器集群的其他共享信息,例如,每個(gè)聊天室房間的用戶基本信息(如用戶ID、用戶昵 稱、所屬房間號(hào)等)。聊天室管理服務(wù)器12也可從該緩存服務(wù)器M中獲取所需信息。聊天 客戶終端信息例如為當(dāng)前用戶的會(huì)話狀態(tài),客戶終端IP、用戶ID,用戶所屬聊天室ID等。
優(yōu)選地,緩存服務(wù)器M由高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng)Memcached來(lái)實(shí)現(xiàn), 本實(shí)施例中,將高性能系統(tǒng)Memcached用作內(nèi)存服務(wù),具有高效和運(yùn)行穩(wěn)定的優(yōu)點(diǎn)。
MINA服務(wù)器21可包括信息存儲(chǔ)單元,用于存儲(chǔ)與該MINA服務(wù)器連接的聊天客 戶終端信息;MINA服務(wù)器可通過(guò)該信息存儲(chǔ)單元獲取其連接的聊天客戶終端信息,以將私 聊信息發(fā)送至相應(yīng)的聊天客戶終端。具體地,信息存儲(chǔ)單元可為在MINA服務(wù)器21中開(kāi)辟 的一塊內(nèi)存,以存儲(chǔ)其連接的聊天客戶終端的聊天客戶終端信息,聊天客戶終端信息例如 包括保存了當(dāng)前用戶會(huì)話狀態(tài)的用戶會(huì)話信息,會(huì)話狀態(tài)包含用戶的IP等一些信息,可以 通過(guò)會(huì)話信息找到所屬的客戶終端。7
在另外的一些實(shí)施例中,MINA服務(wù)器還用于對(duì)聊天客戶終端的請(qǐng)求進(jìn)行鑒權(quán)(例 如判斷是否為黑名單用戶,是否禁止其發(fā)言等),以決定是否對(duì)其進(jìn)行后續(xù)處理;所述主 JMS服務(wù)器還用于將來(lái)自所述聊天室管理服務(wù)器的控制命令發(fā)送至所述MINA服務(wù)器,其中 控制命令例如為踢人、禁言或關(guān)閉等。
在圖2所示的實(shí)施例中,通過(guò)交換機(jī)連接MINA服務(wù)器集群,能夠根據(jù)聊天服務(wù)需 要增加或減少M(fèi)INA服務(wù)器的數(shù)量,這樣,在無(wú)需重新設(shè)計(jì)該聊天服務(wù)器系統(tǒng)架構(gòu)的情況 下,便可根據(jù)實(shí)際情況對(duì)聊天服務(wù)器系統(tǒng)進(jìn)行橫向擴(kuò)展,從而提高了結(jié)構(gòu)的可擴(kuò)展性。
聊天服務(wù)器系統(tǒng)還可包括備份JMS服務(wù)器25,用于存儲(chǔ)所述主JMS服務(wù)器未處 理的消息,并在所述主JMS服務(wù)器出現(xiàn)故障時(shí),處理未處理的消息,實(shí)現(xiàn)聊天服務(wù)器系統(tǒng)的 熱備份,并提高結(jié)構(gòu)的穩(wěn)定性。
請(qǐng)參閱圖3所示,其為本發(fā)明一實(shí)施例的連接于同一MINA服務(wù)器的兩個(gè)聊天客戶 終端間私聊的流程圖,在本實(shí)施例中,作為發(fā)送方的聊天客戶終端A連接于MINA服務(wù)器A, 作為接收方的聊天客戶終端B也連接于MINA服務(wù)器A,聊天客戶終端A欲發(fā)送私聊消息至 聊天客戶終端B,執(zhí)行步驟如下
Sll 聊天客戶終端A發(fā)送私聊消息至MINA服務(wù)器A,該私聊消息中包含接收方的 ID ;
S12 =MINA服務(wù)器A根據(jù)接收方的ID從緩存服務(wù)器中獲取接收方所屬的MINA服 務(wù)器;
S13 緩存服務(wù)器將接收方所屬的MINA服務(wù)器返回給MINA服務(wù)器A (在本實(shí)施例 中,接收方所屬的MINA服務(wù)器也為MINA服務(wù)器A);
S14 :MINA服務(wù)器A向聊天客戶終端A返回發(fā)送結(jié)果(成功或失敗);
S15 :MINA服務(wù)器A根據(jù)接收方的ID從其內(nèi)部的信息存儲(chǔ)單元獲取接收方信息, 例如IP信息;
S16 信息存儲(chǔ)單元將接收方信息返回給MINA服務(wù)器A,MINA服務(wù)器A由此獲知接 收方為聊天客戶終端B;
S17 =MINA服務(wù)器A將私聊信息發(fā)送給聊天客戶終端B。
請(qǐng)參閱圖4所示,其為本發(fā)明一實(shí)施例的連接于不同MINA服務(wù)器的兩個(gè)聊天客戶 終端間私聊的流程圖,在本實(shí)施例中,作為發(fā)送方的聊天客戶終端A連接于MINA服務(wù)器A, 作為接收方的聊天客戶終端B連接于MINA服務(wù)器B,聊天客戶終端A欲發(fā)送私聊消息至聊 天客戶終端B,執(zhí)行步驟如下
S21 聊天客戶終端A發(fā)送私聊消息至MINA服務(wù)器A,該私聊消息中包含接收方的 ID ;
S22 =MINA服務(wù)器A根據(jù)接收方的ID從緩存服務(wù)器中獲取接收方所屬的MINA服 務(wù)器;
S23 緩存服務(wù)器將接收方所屬的MINA服務(wù)器返回給MINA服務(wù)器A (在本實(shí)施例 中,接收方所屬的MINA服務(wù)器為MINA服務(wù)器B);
S24 =MINA服務(wù)器A發(fā)送私聊消息到主JMS服務(wù)器;
在本實(shí)施例中,每個(gè)MINA服務(wù)器在JMS服務(wù)器上分別對(duì)應(yīng)一個(gè)JMS技術(shù)中的 QUEUE (隊(duì)列),以實(shí)現(xiàn)消息的順序處理,例如,MINA服務(wù)器A發(fā)送私聊消息到接收方所屬M(fèi)INA服務(wù)器(即MINA服務(wù)器B)對(duì)應(yīng)的QUEUE。
S25 :MINA服務(wù)器A向聊天客戶終端A返回發(fā)送結(jié)果(成功或失敗);
S26 JMS服務(wù)器傳遞私聊消息到接收方所屬M(fèi)INA服務(wù)器(即MINA服務(wù)器B);
S27 =MINA服務(wù)器B根據(jù)接收方的ID從其內(nèi)部的信息存儲(chǔ)單元獲取接收方信息, 例如IP信息
S28 信息存儲(chǔ)單元將接收方信息返回給MINA服務(wù)器B,MINA服務(wù)器B由此獲知接 收方為聊天客戶終端B;
S29 =MINA服務(wù)器B將私聊信息發(fā)送給聊天客戶終端B。
在本發(fā)明的再一實(shí)施例中,當(dāng)所述MINA服務(wù)器從其連接的聊天客戶終端接收的 消息為廣播消息時(shí),所述MINA服務(wù)器將該廣播消息發(fā)送至JMS服務(wù)器,并由JMS服務(wù)器將 所述廣播消息向MINA服務(wù)器廣播,然后由MINA服務(wù)器向其所連接的聊天客戶終端廣播。
其中,廣播消息可為某一聊天客戶終端向所有聊天客戶終端發(fā)送的消息,也可為 某一聊天客戶終端向其所屬的聊天室房間內(nèi)的所有用戶發(fā)送消息,即群聊。
請(qǐng)參閱圖5所示,其為本發(fā)明一實(shí)施例的聊天客戶終端發(fā)布廣播消息的流程圖, 在本實(shí)施例中執(zhí)行步驟如下
S31 聊天客戶終端發(fā)送廣播消息至MINA服務(wù)器;
S32 =MINA服務(wù)器向聊天客戶終端返回發(fā)送結(jié)果(成功或失敗);
S33 =MINA服務(wù)器A同步廣播消息到JMS服務(wù)器;
在本實(shí)施例中,通過(guò)JMS服務(wù)器發(fā)布廣播消息由JMS技術(shù)中的TOPIC(主題)對(duì)象 實(shí)現(xiàn)。
S34 JMS服務(wù)器讀取TOPIC,下發(fā)廣播消息至所有MINA服務(wù)器;
S35 :MINA服務(wù)器從其自身的信息存儲(chǔ)單元獲取各聊天客戶終端信息,例如IP信 息;
S36:各MINA服務(wù)器根據(jù)客戶終端信息,將廣播消息發(fā)布至客戶終端,具體而言, 如果該廣播消息是發(fā)送到所有聊天客戶終端的,則MINA服務(wù)器將該廣播消息發(fā)布至所有 客戶終端;如果該廣播消息是發(fā)送到某一聊天室房間的,則MINA服務(wù)器會(huì)將該廣播消息發(fā) 送給屬于該聊天室房間的所有客戶終端。
本發(fā)明的實(shí)施例還提供了一種構(gòu)建聊天服務(wù)器系統(tǒng)的方法,包括以下步驟提供 SOCKET服務(wù)器,使其與多個(gè)聊天客戶終端建立SOCKET連接,并與所述多個(gè)聊天客戶終端保 持連接以向其提供聊天服務(wù);提供聊天室管理服務(wù)器,以控制管理所述SOCKET服務(wù)器和聊 天客戶終端。
這種構(gòu)建聊天服務(wù)器系統(tǒng)的方法,可以實(shí)現(xiàn)在聊天客戶終端高并發(fā)、高訪問(wèn)的情 況下,依然能獲得SOCKET服務(wù)器的實(shí)時(shí)響應(yīng);而且這種將不同的功能服務(wù),合理分配在不 同的服務(wù)器上,實(shí)現(xiàn)了管理與使用的分布部署,能夠提高聊天服務(wù)器系統(tǒng)的穩(wěn)定性。
進(jìn)一步地,本發(fā)明的實(shí)施例還提供了一種聊天系統(tǒng),其包括如前所述的聊天服務(wù) 器系統(tǒng)以及聊天客戶終端。
可以看出,本實(shí)施例提供的聊天系統(tǒng),可以實(shí)現(xiàn)在聊天客戶終端高并發(fā)、高訪問(wèn)的 情況下,依然能獲得SOCKET服務(wù)器的實(shí)時(shí)響應(yīng);而且這種聊天服務(wù)器系統(tǒng)將不同的功能服 務(wù),合理分配在不同的服務(wù)器上,實(shí)現(xiàn)了管理與使用的分布部署,能夠提高聊天服務(wù)器系統(tǒng)的穩(wěn)定性。
雖然已參照幾個(gè)典型實(shí)施例描述了本發(fā)明,但應(yīng)當(dāng)理解,所用的術(shù)語(yǔ)是說(shuō)明和示 例性、而非限制性的術(shù)語(yǔ)。由于本發(fā)明能夠以多種形式具體實(shí)施而不脫離發(fā)明的精神或?qū)?質(zhì),所以應(yīng)當(dāng)理解,上述實(shí)施例不限于任何前述的細(xì)節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神 和范圍內(nèi)廣泛地解釋,因此落入權(quán)利要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán) 利要求所涵蓋。
權(quán)利要求
1.一種聊天服務(wù)器系統(tǒng),其特征在于,包括SOCKET服務(wù)器,與多個(gè)聊天客戶終端建立SOCKET連接,并與所述多個(gè)聊天客戶終端保 持連接以向其提供聊天服務(wù);聊天室管理服務(wù)器,用于控制管理所述SOCKET服務(wù)器和聊天客戶終端。
2.根據(jù)權(quán)利要求1所述的聊天服務(wù)器系統(tǒng),其特征在于,所述SOCKET服務(wù)器為MINA服 務(wù)器。
3.根據(jù)權(quán)利要求2所述的聊天服務(wù)器系統(tǒng),其特征在于,所述MINA服務(wù)器為多個(gè),該聊 天服務(wù)器系統(tǒng)還包括;交換機(jī),連接在所述多個(gè)聊天客戶終端與所述多個(gè)MINA服務(wù)器之間;主JMS服務(wù)器,與所述多個(gè)MINA服務(wù)器連接;其中,當(dāng)所述MINA服務(wù)器通過(guò)所述交換機(jī)從其連接的聊天客戶終端接收的消息為私 聊消息時(shí),所述MINA服務(wù)器判斷該私聊消息的接收方是否為自身連接的聊天客戶終端,若 是,則將該私聊消息通過(guò)所述交換機(jī)發(fā)送至接收方;若否,則通過(guò)所述主JMS服務(wù)器將該私 聊消息發(fā)送至接收方所屬的MINA服務(wù)器,并由該接收方所屬的MINA服務(wù)器通過(guò)所述交換 機(jī)將該私聊消息發(fā)送至接收方。
4.根據(jù)權(quán)利要求3所述的聊天服務(wù)器系統(tǒng),其特征在于,還包括緩存服務(wù)器,用于存儲(chǔ)每個(gè)MINA服務(wù)器所連接的聊天客戶終端信息;所述MINA服務(wù)器通過(guò)該緩存服務(wù)器判斷所述私聊消息的接收方是否為自身連接的聊 天客戶終端。
5.根據(jù)權(quán)利要求3所述的聊天服務(wù)器系統(tǒng),其特征在于,所述MINA服務(wù)器包括信息存儲(chǔ)單元,用于存儲(chǔ)與該MINA服務(wù)器連接的聊天客戶終端信息;所述MINA服務(wù)器通過(guò)該信息存儲(chǔ)單元獲取其連接的聊天客戶終端信息,以將私聊消 息發(fā)送至接收方。
6.根據(jù)權(quán)利要求3所述的聊天服務(wù)器系統(tǒng),其特征在于,當(dāng)所述MINA服務(wù)器從其連接 的聊天客戶終端接收的消息為廣播消息時(shí),所述MINA服務(wù)器將該廣播消息發(fā)送至所述主 JMS服務(wù)器,并由所述主JMS服務(wù)器將所述廣播消息向MINA服務(wù)器廣播,然后由MINA服務(wù) 器向其所連接的聊天客戶終端廣播。
7.根據(jù)權(quán)利要求3所述的聊天服務(wù)器系統(tǒng),其特征在于,所述MINA服務(wù)器還用于對(duì)聊 天客戶終端的請(qǐng)求進(jìn)行鑒權(quán)。
8.根據(jù)權(quán)利要求3所述的聊天服務(wù)器系統(tǒng),其特征在于,所述主JMS服務(wù)器還用于將來(lái) 自所述聊天室管理服務(wù)器的控制命令發(fā)送至所述MINA服務(wù)器。
9.根據(jù)權(quán)利要求3所述的聊天服務(wù)器系統(tǒng),其特征在于,該聊天服務(wù)器系統(tǒng)還包括備份JMS服務(wù)器,用于存儲(chǔ)所述主JMS服務(wù)器未處理的消息,并在所述主JMS服務(wù)器出現(xiàn)故障時(shí),處理未處理的消息。
10.一種構(gòu)建聊天服務(wù)器系統(tǒng)的方法,其特征在于,包括以下步驟提供SOCKET服務(wù)器,使其與多個(gè)聊天客戶終端建立SOCKET連接,并與所述多個(gè)聊天客 戶終端保持連接以向其提供聊天服務(wù);提供聊天室管理服務(wù)器,以控制管理所述SOCKET服務(wù)器和聊天客戶終端。
11.一種聊天系統(tǒng),其特征在于,包括根據(jù)權(quán)利要求1-9中任一項(xiàng)所述的聊天服務(wù)器系統(tǒng)以及聊天客戶終端。
全文摘要
本發(fā)明公開(kāi)了一種聊天服務(wù)器系統(tǒng)、構(gòu)建聊天服務(wù)器系統(tǒng)的方法以及聊天系統(tǒng),其中該聊天服務(wù)器系統(tǒng),包括SOCKET 服務(wù)器,與多個(gè)聊天客戶終端建立SOCKET連接,并與所述多個(gè)聊天客戶終端保持長(zhǎng)連接以向其提供聊天服務(wù);聊天室管理服務(wù)器,用于控制管理所述SOCKET服務(wù)器和聊天客戶終端。本發(fā)明在聊天客戶終端高并發(fā)的情況下,也能夠獲得聊天服務(wù)器系統(tǒng)的實(shí)時(shí)響應(yīng)。
文檔編號(hào)H04L12/58GK102045270SQ20101056824
公開(kāi)日2011年5月4日 申請(qǐng)日期2010年11月30日 優(yōu)先權(quán)日2010年11月30日
發(fā)明者王碩 申請(qǐng)人:北京迅捷英翔網(wǎng)絡(luò)科技有限公司