Senior
Ինչպես է աշխատում WebSocket կապը ճարտարապետությունում — երբ է այն հաստատվում և ով ովի հետ շփվում է?
sobes.tech AI
Պատասխան AI-ից
WebSocket կապը հաստատվում է հատուկ handshake-ով HTTP պրոտոկոլի վրա.
- Միջնորդը ուղարկում է HTTP հարցում
Upgrade: websocketգլխով, որպեսզի անցնի WebSocket պրոտոկոլին: - WebSocket-ին աջակցող սերվերը պատասխանում է հաստատմամբ և անցնում երկկողմանի կապի:
Հետագա հաստատումից հետո՝
- Միջնորդը և սերվերը պահպանում են մշտական TCP կապ:
- Երկու կողմերն էլ կարող են ցանկացած ժամանակ ուղարկել հաղորդագրություններ՝ առանց կապը նորից հաստատելու:
Այս կառուցվածքում դա թույլ է տալիս իրական ժամանակի հաղորդակցություն իրականացնել, օրինակ՝ չատ կամ տվյալների իրական ժամանակի թարմացումներ:
Օրինակ՝ Go լեզվով՝ օգտագործելով gorilla/websocket փաթեթը՝
var upgrader = websocket.Upgrader{}
func wsHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("բարձրացման սխալ:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Հաղորդագրության մշակումը
conn.WriteMessage(websocket.TextMessage, msg) // էկո
}
}
Այսպիսով՝ WebSocket-ը ապահովում է երկկողմանի, մշտական կապ հաճախորդի և սերվերի միջև։