999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

群組聊天業(yè)務(wù)在IMS客戶(hù)端的設(shè)計(jì)與實(shí)現(xiàn)

2011-09-07 10:16:54朱春江丁革媛賈軍營(yíng)
關(guān)鍵詞:用戶(hù)

朱春江, 丁革媛, 孫 詠, 賈軍營(yíng)

(1.中國(guó)科學(xué)院研究生院,北京100049;2.中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所網(wǎng)絡(luò)與通信實(shí)驗(yàn)室,遼寧沈陽(yáng)110171;3.沈陽(yáng)工業(yè)大學(xué)工程學(xué)院,遼寧沈陽(yáng)111003)

0 引 言

IM(instantmessaging)的飛速發(fā)展使得它一躍成為互聯(lián)網(wǎng)三大基礎(chǔ)應(yīng)用之首,超過(guò)了搜索引擎和電子郵件。在網(wǎng)絡(luò)融合的背景下,IMS客戶(hù)端必然會(huì)選擇包含IM這項(xiàng)極具商業(yè)價(jià)值的業(yè)務(wù)。IMS架構(gòu)中指定SIMPLE(SIP for instant messaging and presence leverage extension)[1]作為IM業(yè)務(wù)的標(biāo)準(zhǔn)規(guī)范。一般認(rèn)為,SIMPLE IM業(yè)務(wù)主要包括,一對(duì)一聊天、群組聊天(預(yù)定義群組和臨時(shí)群組)、文件傳輸、離線(xiàn)消息和歷史消息存儲(chǔ)等。IMS客戶(hù)端中這些業(yè)務(wù)擁有旺盛的需求,特別是群組聊天。目前業(yè)界IMS客戶(hù)端支持的業(yè)務(wù)一般都包括一對(duì)一聊天、離線(xiàn)消息、歷史消息存儲(chǔ)等,而在最新的標(biāo)準(zhǔn)中定義的群組聊天和文件傳輸,還很少有 IMS客戶(hù)端支持。Ericsson的IMS-M客戶(hù)端支持臨時(shí)群組、文件傳輸,但沒(méi)有預(yù)定義群組;法國(guó)優(yōu)秀的IMS客戶(hù)端Mercuro只支持文件傳輸,不支持群組聊天。因此,市場(chǎng)上還沒(méi)有一個(gè)IMS客戶(hù)端完整地支持群組聊天業(yè)務(wù),群組聊天業(yè)務(wù)是目前IMS客戶(hù)端需求最迫切的業(yè)務(wù)。

為了彌補(bǔ)完整的群組聊天業(yè)務(wù)在 IMS客戶(hù)端上的空白,本文依據(jù)OMA最新發(fā)布的SIMPLEIM標(biāo)準(zhǔn),研究其中關(guān)于群組聊天業(yè)務(wù)的定義,在IMS客戶(hù)端體系架構(gòu)上添加了群組聊天組件,設(shè)計(jì)出分別針對(duì)預(yù)定義群組和臨時(shí)群組的管理器,討論了群組初始化的過(guò)程,并實(shí)現(xiàn)在SIPHelloIMS客戶(hù)端上。經(jīng)測(cè)試表明,群組初始化、群組操作、群會(huì)話(huà)操作、群組消息收發(fā)、事件包訂閱通知等均正確運(yùn)行,群組聊天業(yè)務(wù)得以成功實(shí)現(xiàn)。

1 群組聊天標(biāo)準(zhǔn)介紹

1.1 SIMPLE IM

SIMPLE和XMPP(extensible messaging and presence protocol)是目前IM的兩個(gè)主要標(biāo)準(zhǔn)。SIMPLE IM是SIP協(xié)議針對(duì)IM和Presence的擴(kuò)展。它最早是由IETF SIMPLE工作組于2001年2月提出的。之后,OMA也就SIMPLEIM提出了版本V1.0的一系列規(guī)范,分別定義了業(yè)務(wù)功能架構(gòu)、業(yè)務(wù)需求、技術(shù)規(guī)范。V1.0版本仍是Candidate狀態(tài),OMA和IETF正在對(duì)此標(biāo)準(zhǔn)進(jìn)行進(jìn)一步完善。

SIMPLEIM會(huì)涉及到OMA定義的另外一些網(wǎng)元,如XDM(XMLdocumentmanagement)[2-3]。OMA 將 IM、Presence、XDM 等功能部件分別定義為一個(gè)網(wǎng)元。這些網(wǎng)元擁有各自的一些功能規(guī)范,某些網(wǎng)元需要調(diào)用其他網(wǎng)元的功能。例如,IM和Presence都會(huì)使用XDM來(lái)管理XML文件。

1.2 預(yù)定義群組和臨時(shí)群組

SIMPLE IM將群組分為預(yù)定義群組(pre-defined group)和臨時(shí)群組(Ad-hoc group)。這兩種群組的區(qū)別在于,預(yù)定義群組擁有群組結(jié)構(gòu)文件保存在XDMS,此XML文件的XMLSchema見(jiàn)文獻(xiàn)[4],它保存著此預(yù)定義群組的各項(xiàng)屬性和內(nèi)容,例如群組名稱(chēng),顯示名稱(chēng),群組成員列表,群組初始化時(shí)是否邀請(qǐng)成員,最大邀請(qǐng)人數(shù)以及定義了各個(gè)成員屬性(如允許匿名,允許訂閱群會(huì)話(huà)conference[5]事件包,允許私有信息,允許動(dòng)態(tài)加入成員,是否接收群廣告,是否是關(guān)鍵用戶(hù),允許別人加入群組等)的規(guī)則集。預(yù)定義群組中“預(yù)定義”3個(gè)字的含義應(yīng)該就在于,每一個(gè)預(yù)定義群組都擁有一個(gè)對(duì)應(yīng)的群組結(jié)構(gòu)文件存儲(chǔ)在XDMS上。臨時(shí)群組,如同它的名字,是一種臨時(shí)創(chuàng)建、臨時(shí)銷(xiāo)毀的群組。它的特點(diǎn)是簡(jiǎn)單方便。

1.3 3種通信模式

SIMPLEIM的通信模式有3種:PagerMode,LargeMessage Mode和SessionMode。PagerMode使用SIP的拓展請(qǐng)求MESSAGE方法,信息直接攜帶在消息體中,傳輸過(guò)程不需要會(huì)話(huà)的建立。但是,Pager Mode每個(gè)MESSAGE消息只能傳輸最多1300字節(jié)的內(nèi)容,當(dāng)需要傳送大數(shù)據(jù)量時(shí)不適用。為了克服此缺點(diǎn),提出了Large Message Mode。此模式每次需要傳輸信息時(shí)就建立起MSRP[6]通道,傳輸完畢后就撤銷(xiāo)MSRP通道。這種方式很好的解決了PagerMode的大消息傳送問(wèn)題,然而,當(dāng)頻繁發(fā)送消息時(shí),MSRP通道的頻繁建立銷(xiāo)毀就成為了巨大的負(fù)載。Session Mode則在通信雙方之間保持著MSRP通道(IM session),期間可以利用此通道接收發(fā)送消息;MSRP通道的銷(xiāo)毀是由用戶(hù)自身或者定時(shí)器來(lái)觸發(fā)的。

上述3種通信模式都可以用于預(yù)定義群組和臨時(shí)群組。但Pager Mode和Large Message Mode只能用于群組消息的發(fā)送和接收;只有Session Mode才有群會(huì)話(huà)操作。

1.4 群組操作和群會(huì)話(huà)操作

顧名思義,群組操作和群會(huì)話(huà)操作分別是針對(duì)群組和群會(huì)話(huà)的。預(yù)定義群組中,群組是由群組結(jié)構(gòu)文件定義的,所以群組操作是指操縱群組結(jié)構(gòu)文件的操作,在任何通信模式下都可以通過(guò)XCAP協(xié)議[7]進(jìn)行;群會(huì)話(huà)操作是指操縱群會(huì)話(huà)的操作,只有在擁有群會(huì)話(huà)時(shí)才存在,即必須是在Session Mode下進(jìn)行的。臨時(shí)群組中,群組的概念更多的是指SessionMode下的群會(huì)話(huà),因?yàn)镻agerMode和LargeMessageMode只能進(jìn)行簡(jiǎn)單的群組消息收發(fā),不能進(jìn)行復(fù)雜的群組操作。因此,臨時(shí)群組下群組操作就是群會(huì)話(huà)操作。

群組操作包括,新建群組、加入群組、邀請(qǐng)別人加入群組、退出群組、將成員從群組中刪除掉、銷(xiāo)毀群組等。它們雖然沒(méi)有在標(biāo)準(zhǔn)中明確地被提出,但可以從XDM[2-3]和RFC4825[7]中推導(dǎo)出操作的方法。它們都是通過(guò)XCAP協(xié)議PUT、GET、DELETE方法操縱IM XDMS上群組結(jié)構(gòu)文件來(lái)實(shí)現(xiàn)的。

群會(huì)話(huà)操作包括,發(fā)起群會(huì)話(huà)、取消發(fā)起的群會(huì)話(huà)、加入群會(huì)話(huà)、邀請(qǐng)成員加入群會(huì)話(huà)、離開(kāi)群會(huì)話(huà)、從群會(huì)話(huà)中刪除成員、結(jié)束群會(huì)話(huà)等。它們的具體細(xì)節(jié)在標(biāo)準(zhǔn)中定義得比較詳細(xì)。下面簡(jiǎn)要介紹客戶(hù)端的過(guò)程:

(1)發(fā)起群會(huì)話(huà):使用INVITE消息,設(shè)置Request-Uri是預(yù)定義群組 Uri或臨時(shí)群組 Conference-Factory-Uri。消息攜帶SDP Offer協(xié)商MSRP通道。

(2)取消發(fā)起的群會(huì)話(huà):使用CANCEL消息,前提是客戶(hù)端還沒(méi)有接收到INVITE請(qǐng)求的最終響應(yīng)。

(3)加入群會(huì)話(huà):使用INVITE消息,設(shè)置Request-Uri是預(yù)定義群組Uri或臨時(shí)群組Session Uri。消息攜帶SDP Offer協(xié)商MSRP通道。

(4)邀請(qǐng)成員加入群會(huì)話(huà):使用REFER消息,設(shè)置Request-Uri是Session Uri。Refer-To字段設(shè)置為被邀請(qǐng)成員Uri,邀請(qǐng)多個(gè)成員時(shí)可以使用RFC4826[8]中定義的Resource-List來(lái)攜帶。Method字段是INVITE方法。

(5)離開(kāi)群會(huì)話(huà):使用BYE消息,設(shè)置Request-Uri是SessionUri。

(6)從群會(huì)話(huà)中刪除成員:使用REFER消息,設(shè)置Request-Uri是Session Uri。Refer-To字段設(shè)置為要?jiǎng)h除的成員Uri,刪除多個(gè)成員時(shí)可以使用RFC4826[8]中定義的Resource-List來(lái)攜帶。Method字段是BYE方法。

(7)結(jié)束群會(huì)話(huà):預(yù)定義群組時(shí),群組管理員執(zhí)行銷(xiāo)毀群組的操作,或者群主離開(kāi)群會(huì)話(huà)時(shí)群組結(jié)構(gòu)文件中Session Release Policy中auto-release字段的值是true[1],此群會(huì)話(huà)就被結(jié)束了。臨時(shí)群組時(shí),群主離開(kāi)群會(huì)話(huà)一定會(huì)引起該群會(huì)話(huà)的結(jié)束。

2 群組聊天業(yè)務(wù)設(shè)計(jì)

2.1 客戶(hù)端體系架構(gòu)

群組聊天業(yè)務(wù)是一項(xiàng)客戶(hù)端、服務(wù)器端緊密交互的系統(tǒng)。在此,我們主要關(guān)注客戶(hù)端。為了構(gòu)建群組聊天業(yè)務(wù),我們?cè)诳蛻?hù)端的體系架構(gòu)上添加群組聊天組件,如圖1所示。

圖1 客戶(hù)端體系架構(gòu)

圖1顯示了“用戶(hù)層——UACore——網(wǎng)絡(luò)層”3層體系結(jié)構(gòu)。最上層是用戶(hù)層,負(fù)責(zé)接收用戶(hù)的操作命令和顯示結(jié)果至用戶(hù)。第二層是整個(gè)架構(gòu)的核心UACore,這一層相當(dāng)于一個(gè)容器,包含著所有核心棧及管理器,如封裝好的信令棧、媒體棧、Presence管理器等。筆者在該層添加了預(yù)定義群組和臨時(shí)群組兩個(gè)管理器,負(fù)責(zé)一切與群組相關(guān)的操作,管理器的具體設(shè)計(jì)見(jiàn)2.2。最底層是網(wǎng)絡(luò)層,負(fù)責(zé)與真實(shí)網(wǎng)絡(luò)的交互。

2.2 管理器設(shè)計(jì)

圖2 管理器框架

在圖2中,預(yù)定義群組管理器包括群組部件、群會(huì)話(huà)部件、XCAP-DIFF[9]事件包訂閱通知部件、Conference[5]事件包訂閱通知部件、預(yù)定義群組消息收發(fā)部件等。而臨時(shí)群組管理器只包括群會(huì)話(huà)部件、Conference事件包訂閱通知部件、臨時(shí)群組消息收發(fā)部件等。其中,群組部件通過(guò)XCAP協(xié)議與IMXDMS進(jìn)行交互,群會(huì)話(huà)部件通過(guò)SIP協(xié)議(INVITE,BYE,REFER等方法)與IMServer交互;XCAP-DIFF和Conference事件包的訂閱通知部件基于RFC3265的事件通知機(jī)制。圖2中事件包訂閱通知接口和群組消息收發(fā)接口在2.3和2.4進(jìn)行介紹。

2.3 群組消息收發(fā)接口設(shè)計(jì)

在圖2中可見(jiàn),群組消息收發(fā)接口相當(dāng)于一個(gè)與IMServer聯(lián)系,匯總、分發(fā)群組消息的接口。發(fā)送消息時(shí),兩個(gè)管理器中預(yù)定義群組消息收發(fā)部件和臨時(shí)群組收發(fā)部件負(fù)責(zé)從用戶(hù)層把要發(fā)送的消息、發(fā)送的目的地等信息收集起來(lái),然后經(jīng)過(guò)群組消息收發(fā)接口發(fā)送至IMServer。接收消息時(shí),從IMServer得到消息后,判斷目標(biāo)群組是預(yù)定義群組還是臨時(shí)群組,然后把消息傳送至相應(yīng)的部件,在那里傳送至用戶(hù)層進(jìn)行顯示和記錄等操作。

根據(jù)通信模式的不同,群組消息收發(fā)接口與IM Server交互的方式也不同。PagerMode下使用的是SIP拓展請(qǐng)求MESSAGE,Session Mode和Large Message Mode都是基于會(huì)話(huà)的模式,它們使用RFC3862[10]中定義的message/cpim MIME格式進(jìn)行群組消息的收發(fā)。因此,根據(jù)上述兩種不同的情況設(shè)計(jì)不同的函數(shù)接口:Pager Mode下使用函數(shù)SendHtmlMessageTo和SendMessageTo分別用于發(fā)送MIME格式為txt/html或txt/plain的消息體,接收MESSAGE消息的回調(diào)則是pfunReceivedPage;Session Mode和 Large Message Mode下使用函數(shù) SendMsrp-DataTo發(fā)送Msrp數(shù)據(jù),接收Msrp數(shù)據(jù)的回調(diào)設(shè)計(jì)為pfunOn-MsrpRecvIM。上述5個(gè)函數(shù)的具體參數(shù)設(shè)計(jì)介紹如下:

(2)發(fā)送Html格式消息函數(shù)SendHtmlMessageTo,參數(shù)列表為unsigned int prof_id,const char*target,const char*txt,int len,int cookie,分別代表ProfileId、發(fā)送目標(biāo)、發(fā)送消息和長(zhǎng)度、cookie。

(3)發(fā)送Plain純文本消息函數(shù)SendMessageTo,參數(shù)列表是short nProfId,const char*target,const char*txt,long len,int cookie,分別代表ProfileId、發(fā)送目標(biāo)、發(fā)送消息和長(zhǎng)度、cookie。

(4)Msrp數(shù)據(jù)接收回調(diào)pfunOnMsrpRecvIM,參數(shù)列表是long sesId,long strmId,char*buf,int buflen,int contenttype,分別代表Session Id、Stream Id、消息內(nèi)容及長(zhǎng)度、MIME格式。

(5)發(fā)送Msrp數(shù)據(jù)函數(shù)SendMsrpDataTo,參數(shù)列表是const char*uri,constchar*buffer,intlen,constintcontenttype,boolbPriority,分別代表目的Uri、消息內(nèi)容及長(zhǎng)度、MIME格式、優(yōu)先級(jí)。

2.4 事件包訂閱通知接口設(shè)計(jì)

從圖2中可見(jiàn),和群組消息收發(fā)接口類(lèi)似,事件包訂閱通知接口是一個(gè)匯總訂閱、分發(fā)通知的接口。訂閱時(shí),預(yù)定義群組管理器中XCAP-DIFF事件包訂閱通知部件把訂閱資源uri,通知方法diff-processing等信息傳送給此接口,此接口再向IM XDMS訂閱。兩個(gè)管理器中Conference事件包訂閱通知部件把要訂閱的群會(huì)話(huà)uri等信息傳送給此接口,之后此接口再統(tǒng)一向IM Server訂閱。通知時(shí),IMXDMS和IMServer等Notifier把Notify消息傳送至此接口,此接口判斷Notify消息的事件包名是XCAP-DIFF還是Conference,訂閱資源屬于預(yù)定義群組還是臨時(shí)群組等信息,再把Notify消息傳送至對(duì)應(yīng)的部件。

數(shù)碼互動(dòng)系統(tǒng)是形態(tài)學(xué)實(shí)驗(yàn)教學(xué)的一項(xiàng)重大改革,是一種有效的教學(xué)輔助手段。有利于開(kāi)展互動(dòng)化教學(xué)方式和遠(yuǎn)程教學(xué),有利于學(xué)生對(duì)形態(tài)學(xué)的理解和學(xué)習(xí)能力水平的提高,經(jīng)過(guò)多年實(shí)踐,發(fā)現(xiàn)學(xué)生的學(xué)習(xí)成績(jī)有很大的提高,形態(tài)學(xué)實(shí)驗(yàn)教學(xué)水平明顯提升。

有了以上分析,筆者設(shè)計(jì)了適用于通用事件的訂閱函數(shù)AddSubscription、RefreshSubscription、RemoveSubscription以及事件包通知的回調(diào)pfunOnSubscriptionActive、pfunOnSubscription-Terminated、pfunOnSubscriptionPending等,事件包訂閱通知接口直接使用這些函數(shù)和回調(diào)就可以實(shí)現(xiàn)。下面介紹它們的具體參數(shù)設(shè)計(jì):

(1)添加訂閱函數(shù)AddSubscription,參數(shù)列表是constchar*uri,constchar*ev,constintexpire,分別代表訂閱資源、訂閱事件包和過(guò)期時(shí)間。

(2)刷新訂閱函數(shù)RefreshSubscription,參數(shù)列表是constchar*uri,const char*ev,代表訂閱資源和訂閱事件包。

(3)刪除訂閱函數(shù)RemoveSubscription,參數(shù)列表是constchar*uri,const char*ev,代表訂閱資源和訂閱事件包。

(4)訂閱成功回調(diào)pfunOnSubscriptionActive,參數(shù)列表是int32 prf_id,const char8*uri,const char8*ev,const char8*strContent,int32 len,const char8*mimetype,分別代表 Profile Id、訂閱資源Uri、訂閱事件包、消息體內(nèi)容及長(zhǎng)度、MIME類(lèi)型。

(5)訂閱終止回調(diào)pfunOnSubscriptionTerminated,參數(shù)列表是int32 prf_id,const char8*uri,const char8*ev,const char8*reason,分別代表ProfileId、訂閱資源Uri、訂閱事件包、終止原因。

(6)訂閱掛起回調(diào)pfunOnSubscriptionPending,參數(shù)列表是int32prf_id,constchar8*uri,constchar8*ev,分別代表 ProfileId、訂閱資源Uri、訂閱事件包。

2.5 群組初始化討論

群組初始化是指IMS客戶(hù)端用戶(hù)登錄成功后的初始化工作,主要是把該用戶(hù)所參與的群組加載完畢。群組初始化只針對(duì)預(yù)定義群組的初始化,不包括臨時(shí)群組的初始化,因?yàn)榕R時(shí)群組是用戶(hù)登錄后臨時(shí)創(chuàng)建的,用戶(hù)剛登錄時(shí)是不應(yīng)該存在任何臨時(shí)群組的。預(yù)定義群組的加載就是取得群組結(jié)構(gòu)文件,解析后放入內(nèi)存,并進(jìn)行相應(yīng)的界面顯示。筆者認(rèn)為,群組初始化過(guò)程存在兩個(gè)關(guān)鍵問(wèn)題,下面具體討論。

2.5.1 用戶(hù)參與的群組

初始化時(shí),用戶(hù)需要知道他參與了哪些群組。群組結(jié)構(gòu)文件只是說(shuō)明某個(gè)群組的各項(xiàng)屬性,并不包含這個(gè)用戶(hù)參與了哪些群組的信息。最直觀的想法是,對(duì)XDMS中所有用戶(hù)樹(shù)下的群組結(jié)構(gòu)文件進(jìn)行搜索,把群組成員列表中包含某特定用戶(hù)的群組給搜索出來(lái),也就知道了該用戶(hù)所參與的所有群組,但顯然搜索過(guò)程會(huì)引入巨大的時(shí)間開(kāi)銷(xiāo),不適合在初始化過(guò)程中使用。在此,定義了一個(gè)XML文件,文件名是BelongGroups.xml,每個(gè)用戶(hù)都擁有一份自己的BelongGroups.xml存放在XDMS該用戶(hù)的用戶(hù)樹(shù)下,作用是指明該用戶(hù)所參與的所有預(yù)定義群組。注意,文件名BelongGroups.xml必須定義為關(guān)鍵字,防止它與同目錄下的群組結(jié)構(gòu)文件的文件名混淆。它的XML Schema如圖3所示。

從圖3的XMLSchema中可以看出,元素belong-groups下有多個(gè)one-group子元素,代表該用戶(hù)所參與的多個(gè)群組;而一個(gè)元素 one-group代表一個(gè)群組,記錄著這個(gè)群組的群組Uri、群組創(chuàng)建者Uri和群組結(jié)構(gòu)文件的文件名。有了這些信息,用戶(hù)就可以取得群組結(jié)構(gòu)文件進(jìn)行初始化了。

2.5.2 本地存檔文件

本地需要存檔 BelongGroups.xml和各個(gè)群組的群組結(jié)構(gòu)文件。因?yàn)镮M XDMS出現(xiàn)故障時(shí),用戶(hù)無(wú)法獲得上述文件就無(wú)法初始化,用戶(hù)體驗(yàn)下降。雖然本地存檔的文件不一定是服務(wù)器上最新的版本,但某種程度上給予用戶(hù)一定的參考價(jià)值。

下一個(gè)需要考慮的問(wèn)題就是,初始化時(shí)如何設(shè)計(jì)服務(wù)器上遠(yuǎn)程文件或本地文件的加載順序。邏輯上,應(yīng)該是先加載遠(yuǎn)程的BelongGroups.xml,加載成功就繼續(xù)加載各個(gè)群組遠(yuǎn)程的群組結(jié)構(gòu)文件,所有群組的群組結(jié)構(gòu)文件都加載成功后初始化就成功結(jié)束了。如果上述過(guò)程出現(xiàn)不成功,就加載本地BelongGroups.xml,接著加載本地的群組結(jié)構(gòu)文件。具體流程圖見(jiàn)圖4。

圖3 BelongGroups.xml的XML Schema

圖4 群組初始化加載文件流程

3 驗(yàn)證與測(cè)試

筆者在VC7.1開(kāi)發(fā)平臺(tái)上基于SIPHelloIMSClient上實(shí)現(xiàn)了群組聊天業(yè)務(wù)。測(cè)試階段測(cè)試項(xiàng)目涵蓋了:

(1)群組初始化流程,構(gòu)造條件使程序通過(guò)圖4中不同分支分別加載遠(yuǎn)程和本地文件。

(2)各項(xiàng)群組操作,測(cè)試這些操作是否導(dǎo)致IMXDMS上對(duì)應(yīng)群組結(jié)構(gòu)文件正確地改變;改變后,Notifier是否發(fā)送XCAP-DIFF事件包Notify消息,訂閱了群組結(jié)構(gòu)文件XCAP-DIFF事件包的群組成員是否接收到Notify消息,是否正確地解析消息體并修改本地存檔文件。

(3)各項(xiàng)群會(huì)話(huà)操作,測(cè)試這些操作是否導(dǎo)致群會(huì)話(huà)狀態(tài)的正確改變;群會(huì)話(huà)狀態(tài)改變后Notifier是否會(huì)發(fā)送Conference事件包的Notify消息,群會(huì)話(huà)中訂閱了群會(huì)話(huà)Conference事件包的成員是否接收到此Notify消息,是否正確地解析消息體并修改群會(huì)話(huà)狀態(tài)。

(4)群組消息收發(fā),測(cè)試預(yù)定義群組和臨時(shí)群組消息的發(fā)送和接收是否正確。

經(jīng)測(cè)試,群組初始化、群組操作、群會(huì)話(huà)操作、群組消息收發(fā)以及事件包訂閱通知等操作正確運(yùn)行,擁有一定的穩(wěn)定性。這也驗(yàn)證了本文SIMPLEIM群組聊天業(yè)務(wù)在IMS客戶(hù)端上的設(shè)計(jì)是正確有效的。

4 結(jié)束語(yǔ)

IMS客戶(hù)端市場(chǎng)對(duì)群組聊天業(yè)務(wù)需求旺盛,而業(yè)內(nèi)IMS客戶(hù)端產(chǎn)品都沒(méi)有完整地提供該業(yè)務(wù),這塊空缺造就了群組聊天業(yè)務(wù)的迫切需求。本文根據(jù)最新的SIMPLE IM標(biāo)準(zhǔn),對(duì)群組聊天業(yè)務(wù)進(jìn)行詳細(xì)分析,在IMS客戶(hù)端體系架構(gòu)上添加了群組聊天組件,設(shè)計(jì)出針對(duì)預(yù)定義群組和臨時(shí)群組的管理器,特別討論了群組初始化流程及其問(wèn)題,并實(shí)現(xiàn)在SIPHello IMSClient上。測(cè)試表明群組初始化、群組操作、群會(huì)話(huà)操作、群組消息收發(fā)以及事件包訂閱通知等均運(yùn)行成功。下一步工作是繼續(xù)緊跟SIMPLE IM標(biāo)準(zhǔn),對(duì)標(biāo)準(zhǔn)中的更新對(duì)設(shè)計(jì)進(jìn)行進(jìn)一步修改,保持與標(biāo)準(zhǔn)的一致,保證與別的遵循SIMPLEIM標(biāo)準(zhǔn)的IMS客戶(hù)端產(chǎn)品之間的互聯(lián)互通。

[1]OMA.Instant messaging using simple[Z].OMA-TS-SIMPLE_IM-V1_0-20080903-C,2008.

[2]OMA.XML document management(XDM)specifi-cation[S].OMA-TS-XDM_Core-V1_1-20080627-A,2008.

[3]OMA.Shared group XDM Specification[Z].OMA-TS-XDM_Shared_Group-V1_0-20090810-C,2008.

[4]OMA.PoC-List Service[S].OMA-SUP-XSD_poc_list-Service-V1_0_2-20090922-A,2009.

[5]Rosenberg J,Schulzrinne H,Levin O.A session initiation protocol(SIP)event package for conference state[S].IETF RFC 4575,2006.

[6]Campbell B,Mahy R,Jennings C.The message session relay protocol(MSRP)[S].IETF RFC 4975,2007.

[7]Rosenberg J.The extensible markup language(XML)configuration Access protocol(XCAP)[S].IETF RFC 4825,2007.

[8]Rosenberg J.Extensible markup language(XML)formats for representing resource lists[S].IETF RFC 4826,2007.

[9]Urpalainen J,Willis D.An extensible markup language(XML)configuration access protocol(XCAP)Diff event package[Z].draft-ietf-sip-xcapevent-08,2009.

[10]Klyne G,Atkins D.Common presence and instant messaging(CPIM):message format[S].IETF RFC 3862,2004.

猜你喜歡
用戶(hù)
雅閣國(guó)內(nèi)用戶(hù)交付突破300萬(wàn)輛
您撥打的用戶(hù)已戀愛(ài),請(qǐng)稍后再哭
關(guān)注用戶(hù)
關(guān)注用戶(hù)
兩新黨建新媒體用戶(hù)與全網(wǎng)新媒體用戶(hù)之間有何差別
關(guān)注用戶(hù)
關(guān)注用戶(hù)
挖掘用戶(hù)需求尖端科技應(yīng)用
Camera360:拍出5億用戶(hù)
100萬(wàn)用戶(hù)
主站蜘蛛池模板: 久久狠狠色噜噜狠狠狠狠97视色| 精品国产三级在线观看| 一级全黄毛片| 欧洲成人在线观看| 91久久国产综合精品女同我| 国产福利不卡视频| 亚洲日韩精品无码专区| 亚洲国产av无码综合原创国产| 欧美精品成人| 91精品专区| 欧美国产视频| 日韩精品欧美国产在线| 无码人妻免费| 国产欧美日韩在线一区| 熟女视频91| 老司机精品一区在线视频| 日本爱爱精品一区二区| 在线国产91| 青青青国产视频| 欧美性精品| 国产亚洲精品97在线观看| 福利小视频在线播放| 日本午夜三级| 久久精品人妻中文视频| 精品视频一区二区观看| 五月天在线网站| 亚洲第一视频网| 久久天天躁狠狠躁夜夜2020一| 亚洲中文字幕久久精品无码一区| 国产va视频| 国产在线自乱拍播放| 国产亚洲高清在线精品99| 精品少妇人妻无码久久| 国产人妖视频一区在线观看| 毛片一区二区在线看| 亚洲综合极品香蕉久久网| 国产日韩欧美中文| 蜜桃视频一区二区| 99无码中文字幕视频| 国产成人精品第一区二区| 国产91精品调教在线播放| 青青草一区| 欧美成人看片一区二区三区 | 欧美另类视频一区二区三区| 免费一级毛片在线播放傲雪网| 国产精品污视频| 亚洲伊人久久精品影院| 国产成人精品一区二区秒拍1o| 日韩一区二区在线电影| 中文字幕亚洲精品2页| 欧美a在线| 9cao视频精品| 久久福利片| 亚洲免费人成影院| 狠狠色综合网| 国产免费久久精品44| 亚洲无码高清一区| 91精品久久久无码中文字幕vr| 99久久免费精品特色大片| 日本免费精品| 99热最新在线| 久久精品无码中文字幕| 国产色婷婷| 九色91在线视频| 在线视频一区二区三区不卡| 五月综合色婷婷| 在线看AV天堂| 国产小视频a在线观看| 亚洲福利一区二区三区| 婷婷伊人久久| 九色国产在线| 日本爱爱精品一区二区| 国产伦精品一区二区三区视频优播| 久久99精品久久久久久不卡| 操操操综合网| 亚洲精品无码在线播放网站| 区国产精品搜索视频| 欧美激情综合| 区国产精品搜索视频| 国产日韩av在线播放| 992tv国产人成在线观看| 一级毛片免费播放视频|