golang 实现websocket 一对一 通讯
package main
import ( "fmt" "log" "net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, }
func main() { http.HandleFunc("/ws", handleWebSocket) log.Fatal(http.ListenAndServe(":8080", nil)) }
func handleWebSocket(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println(err) return } defer conn.Close()
for {
// 读取客户端发来的消息
_, message, err := conn.ReadMessage()
if err != nil {
log.Println(err)
return
}
fmt.Printf("收到消息: %s\n", message)
// 发送消息给客户端
err = conn.WriteMessage(websocket.TextMessage, []byte("你好,客户端"))
if err != nil {
log.Println(err)
return
}
}
}
// 客户端使用 JavaScript 代码发送和接收消息 // var ws = new WebSocket("ws://localhost:8080/ws"); // ws.onopen = function() { // ws.send("你好,服务器"); // } // ws.onmessage = function(evt) { // console.log(evt.data); // }
原文地址: https://www.cveoy.top/t/topic/tdI 著作权归作者所有。请勿转载和采集!