[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...