1.socket
網絡上兩個程序經過一個雙向的通訊鏈接實現數據的交換
客戶端發送網絡請求給服務器
服務器返回數據給客戶端
兩端鏈接都是socket 通訊管道
通訊以前要先創建鏈接,也就是通訊管道,經過socket創建鏈接
2.網絡通訊要素
網絡請求 經過socket鏈接
ip找到主機
端口號是找到應用程序(進程,服務器應用程序)
傳輸協議(tcp udp) 創建鏈接的就是tcp,
tcp :創建鏈接,三次握手,數據不受限制,保證可靠協議,安全送達,因此效率會低一點
udp:不創建鏈接,所以不可靠,數據限制64k
3.實現Socket服務端監聽 CocoaAsyncSocket(oc)第三框架 是對C語言的封裝
4.轉發消息服務
多個客戶端鏈接到服務器
當一個客戶端發送消息給服務端,服務端轉發給其餘客戶端,好比QQ聊天(根據端口號來區別發送給那個QQ號)
至關於一個羣聊的雛形
5.長鏈接和短鏈接
客戶端請求數據服務端 創建鏈接以後,沒有用,鏈接斷開 ,減小cpu資源,短鏈接(http就是短鏈接)
實時鏈接。即時通信,由於隨時可能發送消息給好友,因此要保持長鏈接
6.socket層的協議
數據傳輸協議,約束
(1)http協議
請求數據(請求頭, 請求體)http傳輸請求格式
服務器解析數據(響應頭,響應體)
(2)xmpp協議 即時通信協議 可擴展的
xml格式的協議 C/S架構 (客戶端與服務端)經過tcp/ip鏈接到服務器,經過socket 創建鏈接 ,傳輸xml數據流
B/S (瀏覽器和服務器)
(3)自定義即時通信協議
json格式協議
7.環信使用的就是xmpp協議
環信在xmpp基礎上進行改造,功能更完善,更強大,進行的二次開發,不用本身再建立服務器
8.傳輸協議 (tcp,udp)和 數據傳輸協議(http,xmpp)區別
寫一封信給好友
tcp、udp至關於快遞方式
http、xmpp 至關於信內容的格式(中文、英文)
9.即時通信(IM)
若是本身寫的xmpp。服務器大部分都是openfire(軟件,下載以後,本身電腦就是一個服務器)
使用框架 xmppFramework ,本身把數據寫出來,這個框架能夠封裝成xml格式
json