欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在即時(shí)通訊中管理成員個(gè)性簽名的方法

文檔序號(hào):7720225閱讀:394來(lái)源:國(guó)知局
專利名稱:在即時(shí)通訊中管理成員個(gè)性簽名的方法
技術(shù)領(lǐng)域
本發(fā)明涉及屬于互聯(lián)網(wǎng)IMdnstant Messaging)即時(shí)通信技術(shù)領(lǐng)域,主要是一種在即時(shí)通訊中管理成員個(gè)性簽名的方法。
背景技術(shù)
目前互聯(lián)網(wǎng)上IM應(yīng)用非常廣泛,方便了大家之間的溝通。所謂的IM的簽名就是一種在IM上公開(kāi)體現(xiàn)個(gè)性,發(fā)表個(gè)人訴求的一種快捷方式。用戶可以將今天的所見(jiàn)、所聞、 所感用簡(jiǎn)短的語(yǔ)句寫在自己使用的IM客戶端上,這樣他的其他好友在打開(kāi)自己的IM客戶端時(shí),就會(huì)看到該用戶的IM簽名,從而了解他的所見(jiàn)、所聞、所感?,F(xiàn)有IM變更簽名和被他的好友了解到的過(guò)程如圖1.存在非及時(shí)性。現(xiàn)在一般IM系統(tǒng)實(shí)現(xiàn)簽名變更通知是這樣實(shí)現(xiàn)的用戶A變更簽名,IM客戶端通知IM服務(wù)器,IM服務(wù)器取出用戶A的好友列表,根據(jù)好友列表里每個(gè)好友的帳號(hào),去依次查詢每個(gè)好友的在線狀態(tài),若在線,則獲取其當(dāng)前IP地址和端口并向其下發(fā)用戶A的新簽名。也就是對(duì)IM好友的一個(gè)群發(fā)。這里存在的問(wèn)題是,用戶每次更新簽名,IM服務(wù)器都要去依次查詢?cè)撚脩舻拿總€(gè)好友的狀態(tài)和IP地址以便群發(fā),可能是去查詢數(shù)據(jù)庫(kù),也可能是根據(jù)帳號(hào)的hash值查詢IM 系統(tǒng)內(nèi)部程序模塊里的哈希表,這里的查詢會(huì)有性能損失。查詢數(shù)據(jù)庫(kù),無(wú)疑會(huì)增加后臺(tái)數(shù)據(jù)庫(kù)的壓力。而根據(jù)帳號(hào)的hash值查詢,好像比查詢數(shù)據(jù)庫(kù)性能更高一些,實(shí)際也有性能損失,比如計(jì)算帳號(hào)hash值的過(guò)程一般比較復(fù)雜,本身就耗費(fèi)一些運(yùn)算,只是相對(duì)于較復(fù)雜的海量數(shù)據(jù)查詢來(lái)說(shuō),計(jì)算hash的過(guò)程比較短小而已。這里的群發(fā)簽名導(dǎo)致每次都查詢好友帳號(hào)的操作,對(duì)IM系統(tǒng)構(gòu)成了不小的壓力。

發(fā)明內(nèi)容
本發(fā)明的目的正是克服上述技術(shù)的不足,而提供一種在即時(shí)通訊中管理成員個(gè)性簽名的方法,使IM系統(tǒng)能夠高效得下發(fā)用戶的簽名變更,并使用戶及時(shí)知道自己感興趣的好友個(gè)性簽名變化情況,節(jié)約用戶的時(shí)間,提高用戶使用IM的便利性。本發(fā)明解決其技術(shù)問(wèn)題采用的技術(shù)方案系統(tǒng)為IM帳號(hào)除了分配一個(gè)全局唯一的IM帳號(hào)外,在每次IM用戶登錄時(shí),再給 IM用戶分配一個(gè)動(dòng)態(tài)ID。動(dòng)態(tài)ID,為4字節(jié)的iht類型,高2位代表其當(dāng)前所在的服務(wù)器編號(hào),低2字節(jié)代表其所在服務(wù)器上進(jìn)程中的索引位置。即將IM服務(wù)器集群看作一個(gè)數(shù)組,根據(jù)此ID高2 位字節(jié),經(jīng)過(guò)跨機(jī)模塊通過(guò)socket可以唯一定位到該IM帳號(hào)在服務(wù)器集群中的某一臺(tái)服務(wù)器,某IM服務(wù)器上的進(jìn)程中管理著一個(gè)IM用戶的數(shù)組,根據(jù)動(dòng)態(tài)ID的低2位字節(jié)可以直接定位到該IM用戶數(shù)組中的某個(gè)IM用戶。IM用戶登錄時(shí),IM登錄模塊在IM服務(wù)器集群中根據(jù)各服務(wù)器的負(fù)載,為IM用戶分配一個(gè)合適的存儲(chǔ)位置,即動(dòng)態(tài)ID,并在數(shù)據(jù)庫(kù)中更新此IM用戶的當(dāng)前動(dòng)態(tài)ID。
一個(gè)IM用戶的好友總數(shù)是有上限的,好友除了有IM帳號(hào)外,再為其分配一個(gè)好友 ID,代表其在當(dāng)前IM用戶中好友列表中的位置,范圍為1 好友總數(shù)上限。好友ID,為2字節(jié)的short int類型,代表其在當(dāng)前IM用戶中的好友列表中的位置索引,即一個(gè)IM用戶的好友列表為一個(gè)數(shù)組,根據(jù)一個(gè)好友ID可以直接定位到一個(gè)好友。IM用戶登錄時(shí),除了獲取到自己的動(dòng)態(tài)ID,也會(huì)從IM服務(wù)器上下載自己的好友列表,及其每個(gè)好友的基本信息,如帳號(hào),也包括每個(gè)好友的好友ID。一個(gè)IM用戶,他的好友聯(lián)系人均具有相對(duì)于此用戶的好友ID,那么此IM用戶本身也是他的好友的好友,定義該IM用戶在他的某好友中的好友ID為此好友的相對(duì)ID。即相對(duì)ID為該IM用戶在他的某好友的好友列表中的位置。至此,一個(gè)IM用戶除了具有帳號(hào),登錄后還具有動(dòng)態(tài)ID;他的好友,除了具有帳號(hào),還具有好友ID和相對(duì)ID。IM服務(wù)器進(jìn)程中管理一個(gè)登錄的IM用戶的數(shù)據(jù)結(jié)構(gòu)如附圖2。服務(wù)器1列出的是動(dòng)態(tài)ID在服務(wù)器上的組織形式,為一個(gè)指針數(shù)組,其存儲(chǔ)內(nèi)容為指針,指針指向的內(nèi)容為一個(gè)登錄的IM用戶數(shù)據(jù),當(dāng)指針為空時(shí),說(shuō)明該動(dòng)態(tài)ID未被分配。由于數(shù)組的性質(zhì),根據(jù)動(dòng)態(tài)ID可以直接定位到動(dòng)態(tài)ID指向的IM用戶數(shù)據(jù)。服務(wù)器2列出的是動(dòng)態(tài)ID指向的IM用戶數(shù)據(jù)的具體結(jié)構(gòu),其分為兩部分,其一為登錄IM用戶的基本信息,如IP,端口,當(dāng)前個(gè)性簽名等,其二為IM用戶的好友列表指針數(shù)組,數(shù)組大小為IM系統(tǒng)允許的好友上限數(shù),其存儲(chǔ)內(nèi)容為指針,指針指向內(nèi)容為好友的信息好友ID、相對(duì)ID,動(dòng)態(tài)ID,簽名選項(xiàng)和其他一些選項(xiàng)數(shù)據(jù)。為了使IM客戶端能夠根據(jù)用戶設(shè)置的簽名選項(xiàng),立即提醒用戶的簽名變化,在IM 系統(tǒng)下發(fā)給IM客戶端的簽名變更消息中增加一個(gè)字段,其內(nèi)容為用戶設(shè)置的簽名選項(xiàng)。IM用戶登錄系統(tǒng)及變化簽名的過(guò)程如下1,IM動(dòng)態(tài)ID分配模塊為IM用戶分配一個(gè)動(dòng)態(tài)ID,并告知IM客戶端;2,IM服務(wù)器初始化該動(dòng)態(tài)ID指向的內(nèi)容,記錄登錄IM用戶的IP,端口等;
3,初始化該IM用戶的好友列表,登記好友的好友ID,相對(duì)ID,動(dòng)態(tài)ID,并告知IM 客戶端;4,輪詢好友列表,根據(jù)好友有效的動(dòng)態(tài)ID定位到好友數(shù)據(jù),根據(jù)好友的相對(duì)ID定位到IM用戶在好友的好友列表數(shù)組的位置,更新其中的動(dòng)態(tài)ID為登錄IM用戶的動(dòng)態(tài)ID ;5,IM用戶簽名變更時(shí),IM客戶端以IM用戶的本次動(dòng)態(tài)ID的身份向IM系統(tǒng)提交新簽名;6,IM系統(tǒng)根據(jù)動(dòng)態(tài)ID,直接定位到某服務(wù)器的對(duì)應(yīng)數(shù)組上,并檢查動(dòng)態(tài)ID指向的 IM用戶的基本信息中的帳號(hào)和消息中IM用戶的帳號(hào)是否相符以容錯(cuò);7,若相符,則IM系統(tǒng)更新動(dòng)態(tài)ID指向的本帳號(hào)基本信息中的新簽名,并開(kāi)始掃描好友指針數(shù)組;8,當(dāng)掃描未結(jié)束時(shí),檢查該好友的動(dòng)態(tài)ID是否為空,否則結(jié)束;9,若好友的動(dòng)態(tài)ID為空,說(shuō)明其未登錄,掃描下一個(gè)好友,執(zhí)行步驟8 ;10,若好友的動(dòng)態(tài)ID不為空,則檢查其簽名選項(xiàng),查看是否接收簽名,若不接收, 則掃描下一個(gè)好友,執(zhí)行步驟8 ;
11,若接收簽名,則根據(jù)其動(dòng)態(tài)ID直接定位到好友動(dòng)態(tài)ID指向的位置,取出其登錄的IP,端口等,下發(fā)新簽名,其中攜帶該好友對(duì)該IM用戶設(shè)置的簽名選項(xiàng);下發(fā)后掃描下一個(gè)好友,執(zhí)行步驟8。通過(guò)以上步驟,一個(gè)IM用戶登錄后,當(dāng)發(fā)布一條新簽名到所有好友時(shí),不再需要根據(jù)好友的IM帳號(hào)去查詢好友的IP地址、好友是否接受簽名等信息,而是根據(jù)好友的動(dòng)態(tài) ID直接定位到好友的數(shù)據(jù)區(qū),效率大大提高。上述步驟4的目的是,在一個(gè)IM用戶新登錄后,通知他的所有在登錄狀態(tài)的好友的數(shù)據(jù)區(qū),根據(jù)好友的相對(duì)ID,知道此IM用戶在好友的好友列表中的位置,直接據(jù)此更新其指向的動(dòng)態(tài)ID。下發(fā)的簽名信息攜帶了好友針對(duì)用戶的簽名選項(xiàng),好友的IM客戶端收到IM簽名時(shí),根據(jù)其中的選項(xiàng)決定是否立即提醒用戶。IM用戶設(shè)置關(guān)注某好友的簽名過(guò)程如下1,IM用戶在IM客戶端上選擇需要關(guān)注簽名的好友;2,IM客戶端向IM服務(wù)系統(tǒng)提交消息,包含本IM用戶的動(dòng)態(tài)ID,關(guān)注好友的好友 ID和相對(duì)ID ;3,IM服務(wù)系統(tǒng)根據(jù)IM用戶的動(dòng)態(tài)ID,直接定位到其數(shù)據(jù)區(qū);4,根據(jù)好友ID,再直接定位到此關(guān)注好友的數(shù)據(jù)指針指向的數(shù)據(jù)區(qū);5,判斷關(guān)注好友的動(dòng)態(tài)ID是否有效;6,若有效,說(shuō)明該好友處于登錄狀態(tài),則直接定位到好友動(dòng)態(tài)ID指向的數(shù)據(jù)區(qū);7,根據(jù)好友的相對(duì)ID,更新此數(shù)據(jù)區(qū)好友數(shù)組中的簽名選項(xiàng);執(zhí)行步驟9 ;8,若無(wú)效,說(shuō)明該好友未登錄;執(zhí)行步驟9 ;9,將該設(shè)置寫入數(shù)據(jù)庫(kù),保存用戶的設(shè)置,結(jié)束。以上過(guò)程,根據(jù)IM用戶的動(dòng)態(tài)ID和其選擇的關(guān)注好友的好友ID,相對(duì)ID,分別直接定位到了各自的數(shù)據(jù)區(qū)。設(shè)置成功后,被關(guān)注好友的簽名若發(fā)生變化,則其群發(fā)簽名時(shí)會(huì)掃描到IM用戶對(duì)其設(shè)置的簽名選項(xiàng)數(shù)據(jù)。本發(fā)明有益的效果是1) IM系統(tǒng)在用戶登錄后,消息交互里攜帶動(dòng)態(tài)ID,好友ID,相對(duì)ID,可以直接定位 IM用戶的數(shù)據(jù),其復(fù)雜度為0 (1),避免了頻繁的數(shù)據(jù)庫(kù)查詢或者復(fù)雜的hash計(jì)算,效率大大提高。2)簽名變更攜帶的消息里攜帶用戶的簽名選項(xiàng),IM客戶端可以根據(jù)選項(xiàng)內(nèi)容在第一時(shí)間提醒用戶好友簽名發(fā)生了變化,省去了用戶主動(dòng)打開(kāi)IM客戶端主動(dòng)去瀏覽的動(dòng)作,節(jié)省了用戶的大量寶貴時(shí)間。3)對(duì)于選擇了“屏蔽”個(gè)性簽名的好友,IM服務(wù)器不需要再向IM客戶端下發(fā)簽名變化消息,減輕了 IM服務(wù)器端的處理壓力,也節(jié)省了帶寬。


圖1是現(xiàn)有技術(shù)中IM系統(tǒng)簽名變化和好友發(fā)現(xiàn)簽名變化的示意圖;圖2是IM服務(wù)器端的數(shù)據(jù)組織結(jié)構(gòu)圖3是3個(gè)IM用戶A,B,C的數(shù)據(jù)結(jié)構(gòu)組織圖4是IM用戶A的的數(shù)據(jù)圖;圖5是IM用戶B的的數(shù)據(jù)圖;圖6是IM用戶C的的數(shù)據(jù)圖;圖7是IM用戶C登錄步驟圖;圖8是IM用戶A修改簽名步驟圖;圖9是IM用戶C設(shè)置關(guān)注好友A簽名的步驟圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明本發(fā)明所述的一種在即時(shí)通訊中管理成員個(gè)性簽名的方法,分為IM用戶登錄過(guò)程、簽名變更過(guò)程、簽名關(guān)注設(shè)置過(guò)程。假設(shè)3個(gè)在線IM用戶,帳號(hào)分別為A,B,C。其在IM系統(tǒng)中分布如圖3,其中A有好友C,B;如圖4B有好友C,A;如圖5C有好友B,A;如圖6IM用戶登錄系統(tǒng)過(guò)程IM用戶登錄IM服務(wù)器,IM服務(wù)器為該IM用戶分配動(dòng)態(tài)ID, 并在服務(wù)端初始化登記該用戶的IP,端口等信息,并初始化該用戶的好友列表,更新在線好友中的該用戶的動(dòng)態(tài)ID信息。用戶C登錄具體步驟如下如圖7步驟1,IM動(dòng)態(tài)ID分配模塊為IM用戶C分配一個(gè)動(dòng)態(tài)ID c,并告知IM客戶端;ID分配模塊為IM服務(wù)器端為所有IM用戶唯一分配動(dòng)態(tài)ID的模塊,其唯一性確保為每個(gè)在線的IM用戶分配一個(gè)唯一的無(wú)沖突的動(dòng)態(tài)ID。IM用戶每次登錄,其被分配的動(dòng)態(tài)ID可能均不相同。動(dòng)態(tài)ID代表了 IM用戶本次登錄的數(shù)據(jù)區(qū)的絕對(duì)地址。IM服務(wù)器端使用動(dòng)態(tài)ID可以在0(1)復(fù)雜度內(nèi)迅速定位到在線IM用戶的數(shù)據(jù)區(qū)。本例中在服務(wù)器 1中為C用戶分配了動(dòng)態(tài)ID C。見(jiàn)圖3。步驟2,IM服務(wù)器初始化該動(dòng)態(tài)ID c指向的內(nèi)容,記錄登錄IM用戶C的IP,端口等;IM服務(wù)器為登錄IM用戶C分配動(dòng)態(tài)ID c后,為動(dòng)態(tài)ID分配數(shù)據(jù)空間,記錄IM用戶C的IP地址,通信端口,并記錄該用戶當(dāng)前的最新簽名信息。步驟3,初始化該IM用戶C的好友列表,登記好友的好友ID,相對(duì)ID,動(dòng)態(tài)ID,并告知IM客戶端;IM服務(wù)端根據(jù)服務(wù)器保存在數(shù)據(jù)庫(kù)中的好友列表,初始化該登錄IM用戶的動(dòng)態(tài) ID指向的數(shù)據(jù)區(qū)中的好友列表,并將好友ID,相對(duì)ID通知IM客戶端保存。本例中用戶C從數(shù)據(jù)庫(kù)中取出C的好友列表具有好友B,A,并得到B,A的當(dāng)前動(dòng)態(tài)ID分別為d,a,可知其好友為在線狀態(tài);也取得了好友的好友ID,分別為1,2,代表第1, 第2個(gè)好友;取得了好友的相對(duì)ID,分別為1,1,表明用戶C在這2個(gè)好友的好友列表中的位置。至此,IM客戶端具備的數(shù)據(jù)如下IM用戶本身的IM帳號(hào),動(dòng)態(tài)ID號(hào);IM用戶的各個(gè)好友的IM帳號(hào),好友ID號(hào),相對(duì)ID號(hào)。
步驟4,輪詢用戶C的好友列表,根據(jù)好友有效的動(dòng)態(tài)ID定位到好友數(shù)據(jù),根據(jù)好友的相對(duì)ID定位到IM用戶在好友的好友列表數(shù)組的位置,更新其中的動(dòng)態(tài)ID為登錄IM 用戶C的動(dòng)態(tài)ID c ;IM服務(wù)端根據(jù)該IM用戶的各個(gè)好友的動(dòng)態(tài)ID和該IM用戶針對(duì)每個(gè)好友的相對(duì) ID,更新其每個(gè)好友的數(shù)據(jù)區(qū)的好友列表中,該IM客戶的動(dòng)態(tài)ID。這樣,該IM用戶的所有在線好友的數(shù)據(jù)區(qū)中也都有了該IM用戶的動(dòng)態(tài)ID。當(dāng)其好友的簽名發(fā)生變化時(shí),可以尋此動(dòng)態(tài)ID,立即通知到該IM用戶。本例中,用戶C比用戶A,B晚登錄,用戶C的好友列表中能得到其好友的動(dòng)態(tài)ID 地址,但其好友此時(shí)不知道用戶C的動(dòng)態(tài)ID地址。故IM服務(wù)端需要掃描用戶C的好友列表,根據(jù)好友的動(dòng)態(tài)ID,主動(dòng)更新好友數(shù)據(jù)區(qū)中的用戶C的動(dòng)態(tài)ID地址。至此,3個(gè)IM用戶中的動(dòng)態(tài)ID地址都具備了。簽名變更過(guò)程登錄IM用戶A主動(dòng)修改其簽名。如圖8步驟1,IM用戶A簽名變更時(shí),IM客戶端以IM用戶的本次動(dòng)態(tài)ID a的身份向IM 系統(tǒng)提交新簽名;IM客戶端A向IM服務(wù)端發(fā)送數(shù)據(jù)包,通知IM用戶A的簽名發(fā)生了變化,數(shù)據(jù)包中攜帶IM用戶的動(dòng)態(tài)ID a和IM用戶的帳號(hào)A。步驟2,IM系統(tǒng)根據(jù)動(dòng)態(tài)ID a,直接定位到服務(wù)器1的對(duì)應(yīng)數(shù)組上,并檢查動(dòng)態(tài)ID a指向的IM用戶的基本信息中的帳號(hào)和消息中IM用戶的帳號(hào)是否相符以容錯(cuò);IM服務(wù)端收到該IM用戶A的簽名變化消息,根據(jù)其中的動(dòng)態(tài)ID a,直接定位到該用戶的數(shù)據(jù)區(qū)。此時(shí),需要進(jìn)行一些容錯(cuò)方面的判斷,此時(shí)可以利用數(shù)據(jù)包中攜帶的帳號(hào)和數(shù)據(jù)區(qū)中的帳號(hào)進(jìn)行對(duì)別。步驟3,若相符,則IM系統(tǒng)更新動(dòng)態(tài)ID a指向的本帳號(hào)基本信息中的新簽名,并開(kāi)始掃描好友指針數(shù)組;由于每個(gè)IM用戶的好友數(shù)是有限的,所以這個(gè)掃描也是有限的。本例中只有2個(gè)好友C,B。步驟4,當(dāng)掃描好友結(jié)束時(shí),結(jié)束簽名推送過(guò)程,否則進(jìn)入下一個(gè)步驟;步驟5,若好友的動(dòng)態(tài)ID為空,說(shuō)明其未登錄,執(zhí)行步驟4 ;這里直接根據(jù)好友的動(dòng)態(tài)ID是否為空來(lái)判斷其是否處于登錄在線狀態(tài),避免了查詢后臺(tái)數(shù)據(jù)庫(kù)或者其它哈希數(shù)據(jù)來(lái)檢測(cè)好友是否處于登錄狀態(tài),節(jié)省了資源。這也是“IM 用戶登錄”過(guò)程中“步驟4”更新好友的數(shù)據(jù)區(qū)中的自己的動(dòng)態(tài)ID的原因。當(dāng)IM用戶C未登錄時(shí),好友C的動(dòng)態(tài)ID為空,則跳過(guò)好友C,繼續(xù)掃描下一個(gè)好友。步驟6,若好友的動(dòng)態(tài)ID不為空,則檢查其簽名選項(xiàng),查看是否接收簽名,若不接收,則掃描下一個(gè)好友,執(zhí)行步驟4 ;這里要檢查自己好友是否接收簽名,若不接收,則無(wú)必要向其下發(fā)消息。節(jié)省了資源。本例中,當(dāng)IM用戶C登錄時(shí),IM用戶A的數(shù)據(jù)區(qū)中的好友C的動(dòng)態(tài)ID變?yōu)橛行В?則需要處理好友C,并檢查其是否接受簽名。步驟7,若接收簽名,則根據(jù)其動(dòng)態(tài)ID直接定位到好友動(dòng)態(tài)ID指向的位置,取出其登錄的IP,端口等,下發(fā)新簽名,其中攜帶該好友對(duì)該IM用戶設(shè)置的簽名選項(xiàng);下發(fā)后掃描下一個(gè)好友,執(zhí)行步驟4。下發(fā)的簽名消息中含有該好友對(duì)該IM用戶設(shè)置的簽名選項(xiàng),當(dāng)好友IM客戶端收到此消息時(shí),可以根據(jù)這個(gè)選項(xiàng)來(lái)決定是否立即彈出消息顯示這個(gè)個(gè)新簽名。本例中,用戶A的好友B,C的簽名選項(xiàng)均為默認(rèn)的0-接受但是不關(guān)注。則IM服務(wù)端會(huì)向用戶B和C下發(fā)簽名更新消息。簽名關(guān)注設(shè)置過(guò)程IM用戶在客戶端上設(shè)置關(guān)注某好友的簽名變化,當(dāng)該好友的簽名變化時(shí),可以在第一時(shí)間得到通知。IM用戶C設(shè)置關(guān)注好友A的簽名步驟如下如圖9步驟1,IM用戶C在IM客戶端上選擇需要關(guān)注簽名的好友A ;此時(shí)IM用戶A處于登錄狀態(tài),客戶端此時(shí)知道所有好友的好友ID,相對(duì)ID信息。 用戶C中,A的好友ID為2,相對(duì)ID為1。步驟2,IM客戶端向IM服務(wù)系統(tǒng)提交消息,包含本IM用戶的動(dòng)態(tài)ID c,關(guān)注好友 A的好友ID 2和相對(duì)ID 1 ;消息包中包含該IM客戶對(duì)好友的選項(xiàng)數(shù)據(jù),0-表示默認(rèn)設(shè)置,不關(guān)注此好友,但是接收簽名;1-表示不關(guān)注,不接收;2-表示關(guān)注此好友。本例中,關(guān)注A的簽名,則簽名選項(xiàng)數(shù)據(jù)設(shè)置為2。步驟3,IM服務(wù)系統(tǒng)根據(jù)IM用戶的動(dòng)態(tài)ID c,直接定位到服務(wù)器1上的數(shù)據(jù)區(qū);IM服務(wù)器收到消息包后,根據(jù)消息中的用戶IM的動(dòng)態(tài)ID c,直接定位到服務(wù)器1 上的數(shù)據(jù)區(qū)。步驟4,根據(jù)好友ID 2,再直接定位到此關(guān)注好友A的數(shù)據(jù)指針指向的數(shù)據(jù)區(qū);由于步驟3已經(jīng)定位到該IM用戶C的數(shù)據(jù)區(qū),IM服務(wù)器再根據(jù)消息包中攜帶的好友ID 2,可以直接定位到好友A在該IM用戶C中的位置。上述操作均為0(1)復(fù)雜度。步驟5,判斷關(guān)注好友A的動(dòng)態(tài)ID是否有效;需要根據(jù)好友A的動(dòng)態(tài)ID的有效性來(lái)判斷其是否處于在線登錄狀態(tài)。步驟6,若A的動(dòng)態(tài)ID有效,說(shuō)明該好友處于登錄狀態(tài),則直接定位到好友動(dòng)態(tài)ID a指向的數(shù)據(jù)區(qū);當(dāng)該好友A的動(dòng)態(tài)ID有效時(shí),本例為a,可以直接根據(jù)此值再定位到服務(wù)器1上對(duì)應(yīng)的數(shù)據(jù)區(qū),其復(fù)雜度也為0(1)。步驟7,根據(jù)好友的相對(duì)ID 1,更新此數(shù)據(jù)區(qū)好友數(shù)組中的簽名選項(xiàng);執(zhí)行步驟 9 ;相對(duì)ID,是該IM用戶在其關(guān)注的好友的好友列表中的絕對(duì)位置,根據(jù)此相對(duì)ID, 可以迅速定位到該IM用戶在好友中的位置,并更新其設(shè)置的選項(xiàng),其復(fù)雜度也為0(1)。本例中,用戶C的好友A的相對(duì)ID為1,表明用戶C在用戶A的好友列表中的位置為1。設(shè)置好關(guān)注選項(xiàng)為2-關(guān)注后,當(dāng)用戶A的簽名發(fā)生變化時(shí),會(huì)執(zhí)行“簽名變更過(guò)程”,并在該過(guò)程的步驟6中檢查到該選項(xiàng),以決定是否下發(fā)新簽名。關(guān)注選項(xiàng)為2,表明C 用戶關(guān)注A用戶的簽名,下發(fā)時(shí)需要攜帶該選項(xiàng)。當(dāng)關(guān)注選項(xiàng)為1時(shí),表明C用戶不需要A 用戶的簽名,此時(shí)不向用戶C下發(fā)用戶A的新簽名。
步驟8,若A的動(dòng)態(tài)ID無(wú)效,說(shuō)明好友A未登錄;執(zhí)行步驟9 ;當(dāng)用戶A未登錄時(shí),其動(dòng)態(tài)ID為空。步驟9,將該設(shè)置寫入數(shù)據(jù)庫(kù),保存用戶的設(shè)置,結(jié)束。最后一步需要在數(shù)據(jù)庫(kù)中永久保存此設(shè)置,以便IM用戶初始登錄時(shí)可以初始化好友數(shù)據(jù)。綜上,為IM系統(tǒng)除了帳號(hào)外,引入每次動(dòng)態(tài)分配的動(dòng)態(tài)ID,和好友ID,相對(duì)ID,使簽名的關(guān)注、變更過(guò)程由查詢數(shù)據(jù)庫(kù)的耗時(shí)行為方式變?yōu)榱?0(1)復(fù)雜度的絕對(duì)尋址方式, 大大提高了系統(tǒng)的效率。最后應(yīng)說(shuō)明,以上實(shí)例僅用以說(shuō)明本發(fā)明的技術(shù)方案并且不限與此,而是在應(yīng)用上可以延伸到其它的修改,變化,應(yīng)用,并且認(rèn)為所有這樣的修改,變化,應(yīng)用,實(shí)施實(shí)例都在本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種在即時(shí)通訊中管理成員個(gè)性簽名的方法,其特征是IM用戶登錄系統(tǒng)及變化簽名的步驟如下(1)在每次IM用戶登錄時(shí),IM動(dòng)態(tài)ID分配模塊為IM用戶分配一個(gè)動(dòng)態(tài)ID,并告知IM客戶端;(2)IM服務(wù)器初始化該動(dòng)態(tài)ID指向的內(nèi)容,記錄登錄IM用戶的IP、端口信息;(3)初始化該IM用戶的好友列表,登記好友的好友ID、相對(duì)ID、動(dòng)態(tài)ID,并告知IM客戶端;(4)輪詢好友列表,根據(jù)好友有效的動(dòng)態(tài)ID定位到好友數(shù)據(jù),根據(jù)好友的相對(duì)ID定位到IM用戶在好友的好友列表數(shù)組的位置,更新其中的動(dòng)態(tài)ID為登錄IM用戶的動(dòng)態(tài)ID ;(5)IM用戶簽名變更時(shí),IM客戶端以IM用戶的本次動(dòng)態(tài)ID的身份向IM系統(tǒng)提交新簽名;(6)IM系統(tǒng)根據(jù)動(dòng)態(tài)ID,直接定位到某服務(wù)器的對(duì)應(yīng)數(shù)組上,并檢查動(dòng)態(tài)ID指向的IM 用戶的基本信息中的帳號(hào)和消息中IM用戶的帳號(hào)是否相符;(7)若相符,則IM系統(tǒng)更新動(dòng)態(tài)ID指向的本帳號(hào)基本信息中的新簽名,并開(kāi)始掃描好友指針數(shù)組;(8)當(dāng)掃描未結(jié)束時(shí),檢查該好友的動(dòng)態(tài)ID是否為空,否則結(jié)束;(9)若好友的動(dòng)態(tài)ID為空,說(shuō)明其未登錄,掃描下一個(gè)好友,執(zhí)行步驟(8);(10)若好友的動(dòng)態(tài)ID不為空,則檢查其簽名選項(xiàng),查看是否接收簽名,若不接收,則掃描下一個(gè)好友,執(zhí)行步驟(8);(11)若接收簽名,則根據(jù)其動(dòng)態(tài)ID直接定位到好友動(dòng)態(tài)ID指向的位置,取出其登錄的 IP、端口信息,下發(fā)新簽名,其中攜帶該好友對(duì)該IM用戶設(shè)置的簽名選項(xiàng);下發(fā)后掃描下一個(gè)好友,執(zhí)行步驟(8)。
2.根據(jù)權(quán)利要求1所述的在即時(shí)通訊中管理成員個(gè)性簽名的方法,其特征是在IM系統(tǒng)下發(fā)給IM客戶端的簽名變更消息中增加一個(gè)字段,其內(nèi)容為用戶設(shè)置的簽名選項(xiàng),下發(fā)的簽名信息攜帶了好友針對(duì)用戶的簽名選項(xiàng),好友的IM客戶端收到IM簽名時(shí),根據(jù)其中的選項(xiàng)決定是否立即提醒用戶;IM用戶設(shè)置關(guān)注某好友的簽名步驟如下(1)IM用戶在IM客戶端上選擇需要關(guān)注簽名的好友;(2)IM客戶端向IM服務(wù)系統(tǒng)提交消息,包含本IM用戶的動(dòng)態(tài)ID,關(guān)注好友的好友ID 和相對(duì)ID ;(3)IM服務(wù)系統(tǒng)根據(jù)IM用戶的動(dòng)態(tài)ID,直接定位到其數(shù)據(jù)區(qū);(4)根據(jù)好友ID,再直接定位到此關(guān)注好友的數(shù)據(jù)指針指向的數(shù)據(jù)區(qū);(5)判斷關(guān)注好友的動(dòng)態(tài)ID是否有效;(6)若有效,說(shuō)明該好友處于登錄狀態(tài),則直接定位到好友動(dòng)態(tài)ID指向的數(shù)據(jù)區(qū);(7)根據(jù)好友的相對(duì)ID,更新此數(shù)據(jù)區(qū)好友數(shù)組中的簽名選項(xiàng);執(zhí)行步驟(9);(8)若無(wú)效,說(shuō)明該好友未登錄;執(zhí)行步驟(9);(9)將該設(shè)置寫入數(shù)據(jù)庫(kù),保存用戶的設(shè)置,結(jié)束。
3.根據(jù)權(quán)利要求1或2所述的在即時(shí)通訊中管理成員個(gè)性簽名的方法,其特征是所述的動(dòng)態(tài)ID,為4字節(jié)的int類型,高2位代表其當(dāng)前所在的服務(wù)器編號(hào),低2字節(jié)代表其所在服務(wù)器上進(jìn)程中的索引位置。
4.根據(jù)權(quán)利要求1或2所述的在即時(shí)通訊中管理成員個(gè)性簽名的方法,其特征是所述的好友ID,為2字節(jié)的short int類型,代表其在當(dāng)前IM用戶中的好友列表中的位置索引。
5.根據(jù)權(quán)利要求1或2所述的在即時(shí)通訊中管理成員個(gè)性簽名的方法,其特征是所述的相對(duì)ID為該IM用戶在他的某好友的好友列表中的位置。
全文摘要
本發(fā)明涉及一種在即時(shí)通訊中管理成員個(gè)性簽名的方法,系統(tǒng)為IM帳號(hào)除了分配一個(gè)全局唯一的IM帳號(hào)外,在每次IM用戶登錄時(shí),再給IM用戶分配一個(gè)動(dòng)態(tài)ID。IM系統(tǒng)在用戶登錄后,消息交互里攜帶動(dòng)態(tài)ID,好友ID,相對(duì)ID,可以直接定位IM用戶的數(shù)據(jù),簽名變更攜帶的消息里攜帶用戶的簽名選項(xiàng),IM客戶端可以根據(jù)選項(xiàng)內(nèi)容在第一時(shí)間提醒用戶好友簽名發(fā)生了變化,省去了用戶主動(dòng)打開(kāi)IM客戶端主動(dòng)去瀏覽的動(dòng)作,節(jié)省了用戶的大量寶貴時(shí)間。本發(fā)明有益的效果使IM系統(tǒng)能夠高效得下發(fā)用戶的簽名變更,并使用戶及時(shí)知道自己感興趣的好友個(gè)性簽名變化情況,節(jié)約用戶的時(shí)間,提高用戶使用IM的便利性。
文檔編號(hào)H04L29/06GK102325095SQ201110191729
公開(kāi)日2012年1月18日 申請(qǐng)日期2011年7月7日 優(yōu)先權(quán)日2011年7月7日
發(fā)明者盧先敏, 呂凡 申請(qǐng)人:杭州仁盈科技有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
临朐县| 景谷| 阜宁县| 铜陵市| 海阳市| 顺义区| 文安县| 勐海县| 南宫市| 佛教| 余庆县| 通许县| 舒兰市| 邢台县| 鄄城县| 秭归县| 广河县| 炎陵县| 望江县| 东乡县| 江阴市| 木里| 噶尔县| 庆城县| 东明县| 云安县| 郓城县| 原平市| 洛隆县| 张家港市| 金坛市| 新乡市| 连城县| 修武县| 繁昌县| 武冈市| 奎屯市| 临洮县| 巴中市| 新丰县| 石河子市|