Junior — Middle
Have you had experience working with the HTTP socket protocol and its implementations?
sobes.tech AI
Answer from AI
Yes, experience with WebSocket protocols in Go typically involves using libraries like gorilla/websocket. This library allows creating WebSocket servers and clients for real-time communication.
Example of a simple WebSocket server in 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("Upgrade error:", err)
return
}
defer conn.Close()
for {
messageType, message, err := conn.ReadMessage()
if err != nil {
log.Println("Read error:", err)
break
}
log.Printf("Received: %s", message)
err = conn.WriteMessage(messageType, message)
if err != nil {
log.Println("Write error:", err)
break
}
}
}
func main() {
http.HandleFunc("/ws", wsHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
This server accepts WebSocket connections, reads messages, and echoes them back. It’s a basic example that can be extended for various protocols over WebSocket.