Junior — Middle
Оё таҷрибаи кор бо протоколи сӯкети HTTP ва татбиқоти он доред?
sobes.tech AI
Ҷавоб аз AI
Бале, таҷрибаи кор бо сӯрохиҳои HTTP ва татбиқҳои онҳо дар Go одатан бо истифодаи WebSocket алоқаманд аст — протоколе, ки муоширати дуҷониба дар болои HTTP таъмин мекунад.
Дар Go, аксар вақт китобхонаи gorilla/websocket истифода мешавад. Ин имкон медиҳад, ки серверҳо ва мизоҷон созанд, ки метавонанд паёмҳоро дар вақти воқеӣ мубодила кунанд.
Масалан, як сервер WebSocket-и содда дар Go:
package main
import (
"net/http"
"github.com/gorilla/websocket"
"log"
)
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 {
messageType, message, err := conn.ReadMessage()
if err != nil {
log.Println("Хатои хондан:", err)
break
}
log.Printf("Пасандоиш: %s", message)
err = conn.WriteMessage(messageType, message)
if err != nil {
log.Println("Хатои навиштан:", err)
break
}
}
}
func main() {
http.HandleFunc("/ws", wsHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
Ин сервер пайвастшавиҳои WebSocket-ро қабул мекунад, паёмҳоро мехонад ва онҳоро бармегардонад (эко). Ин як намунаи асосӣ аст, ки метавонад барои татбиқи протоколҳои гуногун дар болои WebSocket васеъ карда шавад.