golang websocket的用法帮我写一下
时间: 2023-11-21 18:45:40 浏览: 126
golang websocket
当然,我会帮助您回答问题。关于golang websocket的用法,下面是一个简单的示例代码:
```go
package main
import (
"fmt"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
}
func wsHandler(w http.ResponseWriter, r *http.Request) {
ws, err := upgrader.Upgrade(w, r, nil)
if err != nil {
fmt.Println("websocket upgrade failed:", err)
return
}
defer ws.Close()
for {
messageType, message, err := ws.ReadMessage()
if err != nil {
fmt.Println("read message failed:", err)
break
}
fmt.Println("message type:", messageType)
fmt.Println("message:", string(message))
reply := []byte("I received your message!")
err = ws.WriteMessage(messageType, reply)
if err != nil {
fmt.Println("write message failed:", err)
break
}
}
}
func main() {
http.HandleFunc("/ws", wsHandler)
http.ListenAndServe(":8888", nil)
}
```
在这个示例中,我们使用了第三方库“gorilla/websocket”,这是Golang常用的WebSocket库之一。
首先,我们使用Upgrader将普通HTTP连接升级为WebSocket连接。然后,我们进入了一个死循环,等待从客户端收到WebSocket消息。一旦收到消息,这个示例程序会对客户端进行回复。
这仅仅是一个简单的示例程序,您可以根据自己的需要自由地扩展它。
阅读全文