通訊 基於Xmpp協議實現的聊天室

2021-08-31 19:36:10 字數 1790 閱讀 7128

[size=medium]前段時間寫了個自定義通訊協議的聊天室(即用\r\n標記字串,作為一句話),總感覺自己弄的那個協議實現雖然簡單,但是拓展性就太差了,只適合於傳送聊天的內容,難以包含更多的資訊。基於上述幾點,於是就開始接觸xmpp協議,並自己定義了乙個簡單的xmpp協議用以實現聊天室。[/size]

[size=medium]首先有2點要知道:[/size]

[color=red]1.什麼是xmpp協議?[/color]

xmpp協議是一種通訊協議,有自己的[color=red]規則[/color],即用xml格式的訊息進行通訊。

[color=red]2.xml串的例子。[/color]

laoyang

上述是一條完整的xml訊息,首尾由標識,裡面就是訊息的內容,不同的內容用不同的標籤來標識,如,然後name包含的內容,即名字就是laoyang

然後,這次不同於上次的是,我自己對這個聊天室做了一番分析,然後再實現的。

[color=red][size=x-large]分析:[/size][/color]

[size=medium][color=red]一.需求分析:[/color][/size]

s.伺服器:

c.客戶端:

[size=medium][color=red]二.c/s通訊流程:[/color][/size]

a:註冊(c------>s) >>>>> 註冊應答(s--------->c)>>>>>> 返回登陸介面

c:聊天(c--------->s------------>c)

[size=medium][color=red]三.xml串的種類:[/color][/size]

a. 註冊訊息: register

idnumber

pswname

b. 註冊應答訊息:regans

state

state:註冊成功或者註冊失敗

c. 登陸訊息:login

idnumber

pswd. 登陸應答訊息:loginans

state

state:登陸成功或者登陸失敗

e. 聊天訊息:chat

name

name

message

f. 上線訊息:online

cntg. 下線訊息: offline

cntuser1,user2,user3.....

i. 終止使用者聊天的訊息exit

[size=medium][color=red]四.關於類的結構的分析[/color][/size](由於內容有點多,所以放在附件的文字中,此處不再寫出)

[color=red][size=x-large]部分:[/size][/color]

[img]

[img]

[img]

[size=x-large][color=red]感想:[/color][/size]

1.做軟體,最重要,最關鍵的一步在於設計,所以在開始寫**前,一定要先分析需求,然後還要對如何實現做乙個具體的分析與設計。

2.要進行通訊,必須要有通訊協議,做通訊軟體,必須要選擇合適的通訊協議。

3.測試軟體效能時,要考慮各種意外情況的發生,比如:突然斷網,伺服器那邊突然停電,so on....,這時要把異常處理的工作給做好。

[size=x-large][color=red]展望:[/color][/size]

本人也是個鐵桿dotaer,所以下一步的打算是做乙個對戰平台,上網搜了下原理,也看了下別人做的對戰平台,覺得還是能夠自己實現的,不過以後的日子就苦逼啦。 tcp/ip的書必須要去看了,對戰平台的需求分析必須要去做了。

通訊 基於Xmpp協議實現的聊天室

前段時間寫了個自定義通訊協議的聊天室 即用 r n標記字串,作為一句話 總感覺自己弄的那個協議實現雖然簡單,但是拓展性就太差了,只適合於傳送聊天的內容,難以包含更多的資訊。基於上述幾點,於是就開始接觸xmpp協議,並自己定義了乙個簡單的xmpp協議用以實現聊天室。首先有2點要知道 1.什麼是xmpp...

基於XMPP協議的即時通訊

最近公司的專案需要用到即時通訊技術,就花了一點時間對即時通訊技術進行研究。經過調研發現,通過openfire spark smack就可以實現。廢話不多說,下面我們就來講一下具體的實現。1.什麼叫openfire?openfire是乙個即時通訊伺服器,也稱之為即時通訊平台。它是基於xmpp協議的,大...

xmpp實現個人聊天

最近一直相研究下如何用xmpp第三方庫寫乙個實現群組聊天的demo但苦於沒人給指路,所以就從個人聊天開始下手。這裡就講一下個人聊天用xmpp如何實現 然後新增路徑 usr include libxml2 然後匯入五個系統庫 libxml2.dylib cfnetwork.framework syst...