diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..61d6c8f --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module go-websocket + +go 1.25.5 + +require github.com/gorilla/websocket v1.5.3 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..25a9fc4 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= diff --git a/main.go b/main.go new file mode 100644 index 0000000..d8afb12 --- /dev/null +++ b/main.go @@ -0,0 +1,51 @@ +package main + +import ( + "log" + "net/http" + "github.com/gorilla/websocket" +) + +var upgrader = websocket.Upgrader{ + ReadBufferSize: 1024, + WriteBufferSize: 1024, + CheckOrigin: func(r *http.Request) bool { + return true + }, +} + +func handler(w http.ResponseWriter, r *http.Request) { + conn, err := upgrader.Upgrade(w, r, nil) + if err != nil { + log.Println("Upgrade error:", err) + return + } + defer conn.Close() + log.Println("欢迎来到小酒馆!!") + + for { + // read message + messageType, message, err := conn.ReadMessage() + if err != nil { + log.Println("拜拜了您嘞") + break + } + + log.Printf("听到了听到了,您说的是 %s", message) + err = conn.WriteMessage(messageType, []byte("好嘞")) + if err != nil { + log.Println("啥玩意咋走了", err) + break + } + } +} + +func main() { + http.HandleFunc("/ws", handler) + log.Println("好戏开场") + err := http.ListenAndServe(":8080", nil) + + if err != nil { + log.Fatal("下回见伙计们", err) + } +} \ No newline at end of file