一種實(shí)時(shí)聊天方法
【專利摘要】本發(fā)明公開(kāi)了一種實(shí)時(shí)聊天方法,該方法包含如下步驟:S1,進(jìn)入通過(guò)TCP/IP和UDP協(xié)議建立的即時(shí)會(huì)話通道,在設(shè)備表現(xiàn)上為聊天窗口界面;S2,確認(rèn)設(shè)備屏幕上是否創(chuàng)建了消息展示區(qū)域,若沒(méi)有,則創(chuàng)建一消息展示區(qū)域;S3,創(chuàng)建一個(gè)有序消息隊(duì)列,并對(duì)所述的消息隊(duì)列進(jìn)行過(guò)濾和計(jì)算,按照時(shí)間順序以瀑布流方式添加到設(shè)備屏幕的消息展示區(qū)域上,當(dāng)消息流動(dòng)超出設(shè)備屏幕后停止移動(dòng),并移除設(shè)備屏幕范圍。本發(fā)明優(yōu)化了目前按時(shí)間軸排列的消息展現(xiàn)形式,增加屏幕空間利用率,減少用戶因消息數(shù)量過(guò)多而不斷上翻查閱的操作,提升用戶體驗(yàn)。
【專利說(shuō)明】
一種實(shí)時(shí)聊天方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及實(shí)時(shí)信息展示領(lǐng)域,特別涉及一種將橫向瀑布式信息表現(xiàn)形式引入聊天工具的方法。
【背景技術(shù)】
[0002]實(shí)時(shí)聊天工具多是基于TCP/IP和UDP進(jìn)行通訊的,TCP/IP和UDP都是建立在更低層的IP協(xié)議上的兩種通訊傳輸協(xié)議。實(shí)時(shí)聊天工具允許建立多個(gè)聊天會(huì)話通道,每個(gè)會(huì)話通道可以在兩名或多名用戶之間傳遞即時(shí)消息,使用者發(fā)出的消息都會(huì)即時(shí)顯示在雙方的設(shè)備屏幕上。
[0003]用戶在當(dāng)前激活的聊天會(huì)話通道窗口時(shí),會(huì)向服務(wù)器發(fā)送該通道標(biāo)識(shí)符,服務(wù)器實(shí)時(shí)返回該標(biāo)識(shí)的聊天會(huì)話通道消息。對(duì)于用戶建立的其它聊天會(huì)話通道,服務(wù)器會(huì)將接收的消息存儲(chǔ),只返回未讀消息的數(shù)量,當(dāng)用戶激活聊天會(huì)話通道時(shí)向服務(wù)器發(fā)送請(qǐng)求,月艮務(wù)器再返回具體的未讀消息。
[0004]接收到消息時(shí),實(shí)時(shí)聊天工具會(huì)按時(shí)間軸順序以橫向序列的排列方式將消息展示在設(shè)備屏幕上,當(dāng)累積的消息數(shù)量超過(guò)設(shè)備屏幕的尺寸限制后,時(shí)間軸較早的消息會(huì)被隱藏,用戶可以通過(guò)向上滾動(dòng)屏幕查看更早的消息。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種實(shí)時(shí)聊天方法,優(yōu)化了目前按時(shí)間軸排列的消息展現(xiàn)形式,增加屏幕空間利用率,減少用戶因消息數(shù)量過(guò)多而不斷上翻查閱的操作,提升用戶體驗(yàn)。
[0006]為了實(shí)現(xiàn)以上目的,本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
[0007]—種實(shí)時(shí)聊天方法,其特點(diǎn)是,該方法包含如下步驟:
[0008]SI,進(jìn)入通過(guò)TCP/IP和UDP協(xié)議建立的即時(shí)會(huì)話通道,在設(shè)備表現(xiàn)上為聊天窗口界面;
[0009]S2,確認(rèn)設(shè)備屏幕上是否創(chuàng)建了消息展示區(qū)域,若沒(méi)有,則創(chuàng)建一消息展示區(qū)域;
[0010]S3,創(chuàng)建一個(gè)有序消息隊(duì)列,并對(duì)所述的消息隊(duì)列進(jìn)行過(guò)濾和計(jì)算,按照時(shí)間順序以瀑布流方式添加到設(shè)備屏幕的消息展示區(qū)域上,當(dāng)消息流動(dòng)超出設(shè)備屏幕后停止移動(dòng),并移除設(shè)備屏幕范圍。
[0011]所述的步驟S2中根據(jù)所述設(shè)備的API獲取設(shè)備屏幕的寬高,并根據(jù)設(shè)備屏幕的寬高創(chuàng)建一消息展示區(qū)域后對(duì)消息展示區(qū)域進(jìn)行標(biāo)記。
[0012]所述的步驟S3具體包含:
[0013]S3.1,創(chuàng)建一空的消息隊(duì)列;
[0014]S3.2,消息按消息時(shí)間順序添加到有序消息隊(duì)列的數(shù)組中;
[0015]S3.3,設(shè)置一個(gè)計(jì)時(shí)器,開(kāi)始展示時(shí)間為0,按時(shí)間增加,達(dá)到展示時(shí)間的彈幕以瀑布流方式添加到屏幕中;
[0016]S3.4,如果用戶點(diǎn)擊了瀑布流消息中的圖片或媒體,則暫停定時(shí)器,開(kāi)始展示圖片或播放媒體,用戶關(guān)閉圖片或媒體后;計(jì)時(shí)器繼續(xù)計(jì)時(shí),繼續(xù)瀑布流消息的流動(dòng);
[0017]S3.5,根據(jù)計(jì)時(shí)器時(shí)間判斷消息是否已經(jīng)流出屏幕,如果已經(jīng)流出則停止消息的流動(dòng)并從屏幕移出,同時(shí)從有序隊(duì)列中移出;
[0018]S3.6,如果所有的消息都展示完畢,此時(shí)的有序隊(duì)列為空,繼續(xù)等待服務(wù)器消息。
[0019]所述的步驟S3.1后還包含:
[0020]步驟S3.7,當(dāng)進(jìn)入會(huì)話通道時(shí)的服務(wù)器返回?cái)?shù)據(jù)是未讀消息還是即時(shí)會(huì)話信息,如果是未讀消息,則向服務(wù)器請(qǐng)求獲取未讀消息,準(zhǔn)備添加到有序消息隊(duì)列;當(dāng)進(jìn)入會(huì)話通道時(shí)的服務(wù)器返回?cái)?shù)據(jù)是即時(shí)會(huì)話信息時(shí),則服務(wù)器返回即時(shí)會(huì)話信息,將即時(shí)會(huì)話信息準(zhǔn)備添加到有序消息隊(duì)列。
[0021]所述的步驟S3.6后包含:
[0022]步驟S3.8,服務(wù)器接收即時(shí)消息,并重復(fù)執(zhí)行步驟S3.2。
[0023]所述的服務(wù)器返回?cái)?shù)據(jù)包含消息數(shù)量、消息發(fā)起人、消息內(nèi)容、消息時(shí)間的JSON字符串。
[0024]所述的瀑布流方式是從屏幕右端按順序批量出現(xiàn)、在展示時(shí)間過(guò)程中移向左端的過(guò)程,或從屏幕左端按順序批量出現(xiàn)、在展示時(shí)間過(guò)程中移向右端的過(guò)程。
[0025]所述的步驟3.2每條消息按消息時(shí)間、設(shè)置展示時(shí)間計(jì)算出的在設(shè)備屏幕出現(xiàn)和移除的時(shí)間點(diǎn)。
[0026]本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
[0027]本發(fā)明優(yōu)化了目前按時(shí)間軸排列的消息展現(xiàn)形式,增加了屏幕空間的利用率,減少用戶因消息數(shù)量過(guò)多而不斷上翻查閱的操作,提升了用戶體驗(yàn)。
【附圖說(shuō)明】
[0028]圖1為有序消息列表的結(jié)構(gòu)圖;
[0029]圖2為本發(fā)明一種實(shí)時(shí)聊天方法的流程圖。
【具體實(shí)施方式】
[0030]以下結(jié)合附圖,通過(guò)詳細(xì)說(shuō)明一個(gè)較佳的具體實(shí)施例,對(duì)本發(fā)明做進(jìn)一步闡述。[0031 ] 如圖2所示,一種實(shí)時(shí)聊天方法,該方法包含如下步驟:
[0032]SI,進(jìn)入通過(guò)TCP/IP和UDP協(xié)議建立的即時(shí)會(huì)話通道,在設(shè)備表現(xiàn)上為聊天窗口界面;
[0033]S2,確認(rèn)設(shè)備屏幕上是否創(chuàng)建了消息展示區(qū)域,若沒(méi)有,則創(chuàng)建一消息展示區(qū)域;步驟S2中根據(jù)所述設(shè)備的API獲取設(shè)備屏幕的寬高,除去非消息展示區(qū)域后生成一塊區(qū)域供消息展示用,并根據(jù)設(shè)備屏幕的寬高創(chuàng)建一消息展示區(qū)域后對(duì)消息展示區(qū)域進(jìn)行標(biāo)記;
[0034]S3,創(chuàng)建一個(gè)有序消息隊(duì)列,并對(duì)所述的消息隊(duì)列進(jìn)行過(guò)濾和計(jì)算,按照時(shí)間順序以瀑布流方式添加到設(shè)備屏幕的消息展示區(qū)域上,當(dāng)消息流動(dòng)超出設(shè)備屏幕后停止移動(dòng),并移除設(shè)備屏幕范圍。
[0035]上述的步驟S3具體包含:
[0036]S3.1,創(chuàng)建一空的消息隊(duì)列;消息隊(duì)列一般是使用編程語(yǔ)言,分配內(nèi)存空間給空數(shù)組,該消息隊(duì)列的結(jié)構(gòu)如附圖1所示。
[0037]S3.2,消息按消息時(shí)間順序添加到有序消息隊(duì)列的數(shù)組中;每條消息按消息時(shí)間、設(shè)置展示時(shí)間計(jì)算出的在屏幕出現(xiàn)和移除的時(shí)間點(diǎn),計(jì)算公式和展示時(shí)間可以按展示效果定制。
[0038]S3.3,設(shè)置一個(gè)計(jì)時(shí)器,開(kāi)始展示時(shí)間為0,按時(shí)間增加,達(dá)到展示時(shí)間的彈幕以瀑布流方式添加到屏幕中;瀑布流方式是從屏幕右端按順序批量出現(xiàn)、在展示時(shí)間過(guò)程中移向左端的過(guò)程,或從屏幕左端按順序批量出現(xiàn)、在展示時(shí)間過(guò)程中移向右端的過(guò)程。流動(dòng)方向可由用戶配置,若同一時(shí)刻的消息達(dá)到設(shè)備屏幕容納的消息空間上限,則消息隊(duì)列停止,直到有消息移出屏幕位置后繼續(xù)進(jìn)行。
[0039]S3.4,如果用戶點(diǎn)擊了瀑布流消息中的圖片或媒體,則暫停定時(shí)器,開(kāi)始展示圖片或播放媒體,用戶關(guān)閉圖片或媒體后;計(jì)時(shí)器繼續(xù)計(jì)時(shí),繼續(xù)瀑布流消息的流動(dòng);
[0040]S3.5,根據(jù)計(jì)時(shí)器時(shí)間判斷消息是否已經(jīng)流出屏幕,如果已經(jīng)流出則停止消息的流動(dòng)并從屏幕移出,同時(shí)從有序隊(duì)列中移出;
[0041]S3.6,如果所有的消息都展示完畢,此時(shí)的有序隊(duì)列為空,繼續(xù)等待服務(wù)器消息。
[0042]在具體實(shí)施例中,上述的步驟S3.1后還包含:
[0043]步驟S3.7,當(dāng)進(jìn)入會(huì)話通道時(shí)的服務(wù)器返回?cái)?shù)據(jù)是未讀消息還是即時(shí)會(huì)話信息,如果是未讀消息,則向服務(wù)器請(qǐng)求獲取未讀消息,準(zhǔn)備添加到有序消息隊(duì)列;當(dāng)進(jìn)入會(huì)話通道時(shí)的服務(wù)器返回?cái)?shù)據(jù)是即時(shí)會(huì)話信息時(shí),則服務(wù)器返回即時(shí)會(huì)話信息,將即時(shí)會(huì)話信息準(zhǔn)備添加到有序消息隊(duì)列。
[0044]在具體實(shí)施例中,所述的步驟S3.6后包含:
[0045]步驟S3.8,服務(wù)器接收即時(shí)消息,并重復(fù)執(zhí)行步驟S3.2。
[0046]所述的服務(wù)器返回?cái)?shù)據(jù)包含消息數(shù)量、消息發(fā)起人、消息內(nèi)容、消息時(shí)間的JSON字符串,數(shù)據(jù)的形式可以根據(jù)業(yè)務(wù)的不同使用其它方便解析的數(shù)據(jù)類型。
[0047]上述的過(guò)濾和計(jì)算是指每條消息按消息時(shí)間、設(shè)置展示時(shí)間計(jì)算出的在設(shè)備屏幕出現(xiàn)和移除的時(shí)間點(diǎn),計(jì)算公式和展示時(shí)間可以按展示效果定制。
[0048]綜上所述,本發(fā)明一種時(shí)聊天方法,優(yōu)化了目前按時(shí)間軸排列的消息展現(xiàn)形式,增加屏幕空間利用率,減少用戶因消息數(shù)量過(guò)多而不斷上翻查閱的操作,提升用戶體驗(yàn)。
[0049]盡管本發(fā)明的內(nèi)容已經(jīng)通過(guò)上述優(yōu)選實(shí)施例作了詳細(xì)介紹,但應(yīng)當(dāng)認(rèn)識(shí)到上述的描述不應(yīng)被認(rèn)為是對(duì)本發(fā)明的限制。在本領(lǐng)域技術(shù)人員閱讀了上述內(nèi)容后,對(duì)于本發(fā)明的多種修改和替代都將是顯而易見(jiàn)的。因此,本發(fā)明的保護(hù)范圍應(yīng)由所附的權(quán)利要求來(lái)限定。
【主權(quán)項(xiàng)】
1.一種實(shí)時(shí)聊天方法,其特征在于,該方法包含如下步驟: SI,進(jìn)入通過(guò)TCP/IP和UDP協(xié)議建立的即時(shí)會(huì)話通道,在設(shè)備表現(xiàn)上為聊天窗口界面; S2,確認(rèn)設(shè)備屏幕上是否創(chuàng)建了消息展示區(qū)域,若沒(méi)有,則創(chuàng)建一消息展示區(qū)域; S3,創(chuàng)建一個(gè)有序消息隊(duì)列,并對(duì)所述的消息隊(duì)列進(jìn)行過(guò)濾和計(jì)算,按照時(shí)間順序以瀑布流方式添加到設(shè)備屏幕的消息展示區(qū)域上,當(dāng)消息流動(dòng)超出設(shè)備屏幕后停止移動(dòng),并移除設(shè)備屏幕范圍。2.如權(quán)利要求1所述的實(shí)時(shí)聊天方法,其特征在于,所述的步驟S2中根據(jù)所述設(shè)備的API獲取設(shè)備屏幕的寬高,并根據(jù)設(shè)備屏幕的寬高創(chuàng)建一消息展示區(qū)域后對(duì)消息展示區(qū)域進(jìn)行標(biāo)記。3.如權(quán)利要求1所述的實(shí)時(shí)聊天方法,其特征在于,所述的步驟S3具體包含: S3.1,創(chuàng)建一空的消息隊(duì)列; S3.2,消息按消息時(shí)間順序添加到有序消息隊(duì)列的數(shù)組中; S3.3,設(shè)置一個(gè)計(jì)時(shí)器,開(kāi)始展示時(shí)間為O,按時(shí)間增加,達(dá)到展示時(shí)間的彈幕以瀑布流方式添加到屏幕中; S3.4,如果用戶點(diǎn)擊了瀑布流消息中的圖片或媒體,則暫停定時(shí)器,開(kāi)始展示圖片或播放媒體,用戶關(guān)閉圖片或媒體后;計(jì)時(shí)器繼續(xù)計(jì)時(shí),繼續(xù)瀑布流消息的流動(dòng); S3.5,根據(jù)計(jì)時(shí)器時(shí)間判斷消息是否已經(jīng)流出屏幕,如果已經(jīng)流出則停止消息的流動(dòng)并從屏幕移出,同時(shí)從有序隊(duì)列中移出; S3.6,如果所有的消息都展示完畢,此時(shí)的有序隊(duì)列為空,繼續(xù)等待服務(wù)器消息。4.如權(quán)利要求3所述的實(shí)時(shí)聊天方法,其特征在于,所述的步驟S3.1后還包含: 步驟S3.7,當(dāng)進(jìn)入會(huì)話通道時(shí)的服務(wù)器返回?cái)?shù)據(jù)是未讀消息還是即時(shí)會(huì)話信息,如果是未讀消息,則向服務(wù)器請(qǐng)求獲取未讀消息,準(zhǔn)備添加到有序消息隊(duì)列;當(dāng)進(jìn)入會(huì)話通道時(shí)的服務(wù)器返回?cái)?shù)據(jù)是即時(shí)會(huì)話信息時(shí),則服務(wù)器返回即時(shí)會(huì)話信息,將即時(shí)會(huì)話信息準(zhǔn)備添加到有序消息隊(duì)列。5.如權(quán)利要求4所述的實(shí)時(shí)聊天方法,其特征在于,所述的步驟S3.6后包含: 步驟S3.8,服務(wù)器接收即時(shí)消息,并重復(fù)執(zhí)行步驟S3.2。6.如權(quán)利要求4所述的實(shí)時(shí)聊天方法,其特征在于,所述的服務(wù)器返回?cái)?shù)據(jù)包含消息數(shù)量、消息發(fā)起人、消息內(nèi)容、消息時(shí)間的JSON字符串。7.如權(quán)利要求1所述的實(shí)時(shí)聊天方法,其特征在于,所述的瀑布流方式是從屏幕右端按順序批量出現(xiàn)、在展示時(shí)間過(guò)程中移向左端的過(guò)程,或從屏幕左端按順序批量出現(xiàn)、在展示時(shí)間過(guò)程中移向右端的過(guò)程。8.如權(quán)利要求3所述的實(shí)時(shí)聊天方法,其特征在于,所述的步驟3.2每條消息按消息時(shí)間、設(shè)置展示時(shí)間計(jì)算出的在設(shè)備屏幕出現(xiàn)和移除的時(shí)間點(diǎn)。
【文檔編號(hào)】H04L12/58GK106059909SQ201610696488
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2016年8月19日
【發(fā)明人】譚兆歆
【申請(qǐng)人】上?;秒娦畔⒖萍加邢薰?br>