gin怎么使用websocket
时间: 2024-02-02 15:05:00 浏览: 138
使用 Gin 实现 WebSocket 通信需要以下步骤:
1. 引入 gin 和 gorilla/websocket 包:
```go
import (
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
)
```
2. 创建一个 Upgrader 对象:
```go
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
}
```
3. 在路由中创建 WebSocket 连接:
```go
router.GET("/ws", func(c *gin.Context) {
conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println(err)
return
}
defer conn.Close()
for {
messageType, p, err := conn.ReadMessage()
if err != nil {
log.Println(err)
return
}
log.Println(string(p))
err = conn.WriteMessage(messageType, p)
if err != nil {
log.Println(err)
return
}
}
})
```
在这个例子中,我们创建了一个 `/ws` 路由,接收 WebSocket 连接。在连接成功后,我们读取客户端发送的消息,并将其回显回客户端。
4. 在客户端中创建 WebSocket 连接:
```javascript
var socket = new WebSocket("ws://localhost:8080/ws");
socket.onopen = function() {
console.log("WebSocket connection established.");
socket.send("Hello from client.");
};
socket.onmessage = function(event) {
console.log("Received message: " + event.data);
};
socket.onclose = function(event) {
console.log("WebSocket connection closed.");
};
```
在客户端中,我们创建了一个 WebSocket 连接到 `ws://localhost:8080/ws`。在连接成功后,我们发送了一条消息并等待服务器回显。
这就是在 Gin 中使用 WebSocket 的基本步骤。你可以根据自己的需求来实现更复杂的功能。
阅读全文