共计 1331 个字符,预计需要花费 4 分钟才能阅读完成。
在 Go 语言中实现 WebSocket 通信,可以使用标准库中提供的 net/http
和github.com/gorilla/websocket
包。以下是一个简单的示例:
package main
import ("fmt"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{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 {fmt.Println("Error upgrading to WebSocket:", err)
return
}
for {// 读取客户端发送的消息
_, message, err := conn.ReadMessage()
if err != nil {fmt.Println("Error reading message:", err)
break
}
// 输出客户端发送的消息
fmt.Printf("Received message: %s\n", message)
// 发送消息给客户端
err = conn.WriteMessage(websocket.TextMessage, []byte("Message received"))
if err != nil {fmt.Println("Error writing message:", err)
break
}
}
}
func main() {http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
在上面的代码中,我们首先创建了一个 upgrader
实例,用于将 HTTP 连接升级为 WebSocket 连接。然后定义了一个处理函数 handler
,当有客户端连接时会调用该函数。在处理函数中,我们通过upgrader.Upgrade
方法将 HTTP 连接升级为 WebSocket 连接,并通过 conn.ReadMessage
读取客户端发送的消息,然后通过 conn.WriteMessage
发送消息给客户端。
最后在 main
函数中,我们通过 http.HandleFunc
将处理函数注册到路由上,然后通过 http.ListenAndServe
启动 HTTP 服务器,监听在 8080 端口上。
在客户端可以使用 JavaScript 来与该 WebSocket 服务器进行通信,例如:
const ws = new WebSocket("ws://localhost:8080/");
ws.onopen = function() {console.log("Connected to WebSocket server");
ws.send("Hello, server!");
};
ws.onmessage = function(event) {console.log("Received message from server:", event.data);
};
通过这种方式,可以使用 Go 语言实现 WebSocket 通信。
丸趣 TV 网 – 提供最优质的资源集合!
正文完