当前位置: 技术文章>> 100道Go语言面试题之-在Go中,如何实现WebSocket通信?
文章标题:100道Go语言面试题之-在Go中,如何实现WebSocket通信?
在Go语言中实现WebSocket通信,通常会使用一些流行的库,如`gorilla/websocket`。这个库提供了一个简单的API来创建WebSocket客户端和服务器。以下是一个基本的步骤和示例代码,展示如何在Go中使用`gorilla/websocket`库来实现WebSocket通信。
### 步骤 1: 安装 gorilla/websocket 库
首先,你需要安装`gorilla/websocket`库。在你的Go项目目录下,运行以下命令来安装它:
```bash
go get github.com/gorilla/websocket
```
### 步骤 2: 编写WebSocket服务器
以下是一个简单的WebSocket服务器示例,它监听来自客户端的连接,并在接收到消息时回复一个确认消息。
```go
package main
import (
"flag"
"log"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{} // 使用默认选项
func echo(w http.ResponseWriter, r *http.Request) {
c, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("upgrade:", err)
return
}
defer c.Close()
for {
mt, message, err := c.ReadMessage()
if err != nil {
log.Println("read:", err)
break
}
log.Printf("recv: %s", message)
err = c.WriteMessage(mt, message)
if err != nil {
log.Println("write:", err)
break
}
}
}
func main() {
flag.Parse()
log.SetFlags(0)
http.HandleFunc("/echo", echo)
log.Fatal(http.ListenAndServe("localhost:8080", nil))
}
```
### 步骤 3: 编写WebSocket客户端
客户端的实现依赖于你使用的环境或框架。但基本上,你会创建一个WebSocket连接,发送消息,并监听回复。以下是一个简单的客户端示例(假设在浏览器中运行):
```html