websocket.Conn
时间: 2023-12-21 19:32:13 浏览: 28
websocket.Conn是一个在Go语言中用于处理WebSocket连接的结构体。它是由gorilla/websocket包提供的。
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许服务器主动向客户端推送数据,而不需要客户端发起请求。websocket.Conn结构体提供了一组方法,用于在Go语言中处理WebSocket连接。
以下是websocket.Conn结构体的一些常用方法:
- ReadMessage():从连接中读取消息。
- WriteMessage():向连接中写入消息。
- Close():关闭连接。
使用websocket.Conn可以实现各种WebSocket应用,例如聊天室、实时通知等。
下面是一个使用websocket.Conn的简单示例代码:
```go
package main
import (
"log"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
}
func echo(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)
break
}
// 打印消息
log.Printf("Received message: %s", message)
// 发送消息
err = conn.WriteMessage(websocket.TextMessage, message)
if err != nil {
log.Println(err)
break
}
}
}
func main() {
http.HandleFunc("/echo", echo)
log.Fatal(http.ListenAndServe(":8080", nil))
}
```
这个示例代码创建了一个简单的WebSocket服务器,它会将客户端发送的消息原样返回给客户端。当有新的消息到达时,服务器会打印消息内容,并将消息发送回客户端。