在Go语言中,可以使用"golang.org/x/net/websocket"包来实现WebSocket服务器。以下是一个示例代码:
```go
package main
import (
"fmt"
"golang.org/x/net/websocket"
"net/http"
)
func EchoServer(ws *websocket.Conn) {
for {
var msg string
err := websocket.Message.Receive(ws, &msg)
if err != nil {
fmt.Println("接收消息出错:", err)
break
}
fmt.Println("接收到消息:", msg)
err = websocket.Message.Send(ws, msg)
if err != nil {
fmt.Println("发送消息出错:", err)
break
}
}
}
func main() {
http.Handle("/echo", websocket.Handler(EchoServer))
err := http.ListenAndServe(":8080", nil)
if err != nil {
fmt.Println("启动WebSocket服务器失败:", err)
}
}
```
在上面的代码中,我们首先导入了"golang.org/x/net/websocket"包,它提供了WebSocket的实现。然后,我们定义了一个EchoServer函数来处理WebSocket连接。在该函数中,我们通过调用`websocket.Message.Receive`方法接收客户端发送的消息,并通过调用`websocket.Message.Send`方法将相同的消息发送回客户端。
在main函数中,我们通过调用`http.Handle`方法将EchoServer函数与指定的路径"/echo"关联起来,并通过调用`http.ListenAndServe`方法启动WebSocket服务器。请注意,此处的端口号是":8080",你可以根据需要进行修改。
希望以上代码能解决你的问题。如果你有任何疑问,请随时提问。