websocket是html5規(guī)范中的一部分,客戶端新建一個websocket實(shí)例.綁定需要連接到的服務(wù)器,當(dāng)客戶端連接服務(wù)端的時候,會向服務(wù)端發(fā)送一個http報文,如果服務(wù)端支持websocket協(xié)議泻骤,那么它就會將自己的通信協(xié)議切換到websocket,同時發(fā)給客戶端響應(yīng)報文頭:
服務(wù)端響應(yīng)報文頭
返回的狀態(tài)碼為101漆羔,表示同意客戶端協(xié)議轉(zhuǎn)換請求,并將它轉(zhuǎn)換為websocket協(xié)議狱掂。以上過程都是利用http通信完成的演痒,稱之為websocket協(xié)議握手(websocket Protocol handshake),進(jìn)過這握手之后趋惨,客戶端和服務(wù)端就建立了websocket連接鸟顺,以后的通信走的都是websocket協(xié)議了。所以總結(jié)為websocket握手需要借助于http協(xié)議器虾,建立連接后通信過程使用websocket協(xié)議讯嫂。同時需要了解的是,該websocket連接還是基于我們剛才發(fā)起http連接的那個TCP連接兆沙。一旦建立連接之后欧芽,我們就可以進(jìn)行數(shù)據(jù)傳輸了,websocket提供兩種數(shù)據(jù)傳輸:文本數(shù)據(jù)和二進(jìn)制數(shù)據(jù)葛圃。
詳細(xì)用法參考webIm項(xiàng)目千扔。