易勝科技官網

聊天工具的架構分析

semot926 發布于 2014/3/19 16:12 瀏覽: 1415 回復: 0 所在分類:軟件開發技術 tag:聊天工具開發 網店即時通訊 電商im工具
隨著統一通信的發展,聊天工具有了更好的發展,其中要算手機和網上的即時聊天工具的發展了。手機主要是3G的開發,有了統一通信技術的支持,我們才可以實現第三代的通信,但是這里要說的另一個方面,關于聊天工具的。

下面就聊天工具開發聊聊現有聊天工具的架構,需要先說明的是TCP和UDP這兩個協議,因為只有先確定了這兩個最重要的協議,才可以確定一個即時聊天軟件的架構。首先舉兩個例子,即時聊天軟件MSN使用的就是TCP,然而QQ使用的是UDP協議。其實這兩者的最大區別就是TCP的可靠保證,是它的三次握手機制,這一機制保證校驗了數據,保證了他的可靠性。而UDP就沒有了,所以不可靠。比如說,在MSN上,要傳輸文件,首先是發送文件,對方確定接受,然后再發送,這樣,三次握手。但是UDP不同,它是直接發送,不管對方是否同意,還是會發送,所以很不安全,但是這是由于這樣,也保證了傳輸的速度,不會受到安全性的限制。而TCP一般會保證發送和收到,更適合一些對安全性質需要較高的工具軟件。但是為什么同樣是即時聊天性質的軟件,MSN使用的是TCP,而QQ的則是UDP呢?通過思考,我認為,國外的網絡環境相對國內的好很多,安全性也有保證,而國內的網絡環境不如國外,還有很多代理服務器,再加上網通和電信,造成了很多不便,如果使用的是TCP的話,那么我們很多用戶將無法使用這個軟件,或者是在傳輸文件和數據的時候將會遇到很多的困難,甚至無法傳送文件,所以QQ使用了UDP。其實呢,大多聊天軟件例如QQ,不光是使用了UDP,在某些方面也用到了TCP,就像QQ的文字聊天協議。

統一通信中即時聊天軟件的架構,由三部分組成,DispatchServer(DS) Notification Server (NS)和Switchboard Server (SB)。


 DS采用的負載均衡方式應該比較簡單,通過DNS解析來做負載均衡。并且由于在DS上的連接都是短連接,保持時間非常短,所以應該DS服務器的數量應該不會很多。由于DS必須要返回一個可用的NS IP,那么內部應該還有其他種類的服務器來保存當前所有可用的NS服務器,以及這些NS服務器上的負載。通過DS這一層來為接下來的NS做負載均衡。NS連接均為長連接,所以在這一層上的負載由DS來調節。如果NS負載太大,新客戶連接上DS時會返回其他相對空閑的NS服務器。當然NS服務器之間也有相互通訊的機制也是少不了的,比如上下線通知、對話發起等等。SB連接的時間介于NS和DS之間,其負載由NS來作控制。對話完成后和SB之間的連接就關閉了。不過由于所有的對話都在SB上進行,MS的服務器資源再強也會吃緊,所以現在新版的MSN Messenger都加入了P2P Message類型,在發起對話的時候會判斷如果雙方都支持sustain ,則會直接點對點連接連接,繞過SB這一層。

 在及時軟件的交互過程中,首先客戶端向服務器發送一個請求登錄令牌的數據包,服務器返回登錄令牌。這個令牌是在服務器端生成的,和客戶端的IP地址,版本信息等數據相關。在客戶端得到登錄令牌后,就會向服務器發送一個包含登錄信息的登錄請求,服務器首先會查看客戶端的號碼、IP地址和版本是否可以在本服務器上進行登錄,如果可以就驗證客戶端的登錄信息是否與服務器上保存的登錄信息一致,如果一致就向客戶端返回一個連接成功的數據包,不匹配則返回登錄失敗。這就是整個的登錄的實現過程。
semot926 2014/3/19 16:12

留下腳印

踩一腳
copyright ? 軟件開發 2010-2012
Powered by 我記錄1.9
Processed in 0 seconds, 0 queries
欧美激情一区二区精品高清视频,欧美伊人色综合久久精品,免费六级a一片久久精品网,青青青国产观91
日本免费人成视频在线观看 | 亚洲中文字幕一区二区在线看 | 特级婬片国产高清视频 | 亚洲色国产欧美日韩 | 亚洲免费乱码视频 | 午夜视频一区二区三区 |