接收websocket请求的服务端:
package mainimport ( "fmt" "net/http" "github.com/gorilla/websocket")var upgrader = websocket.Upgrader{ ReadBufferSize:1024, WriteBufferSize: 1024,}func main() { http.HandleFunc("/echo", func(w http.ResponseWriter, r *http.Request) {conn, _ := upgrader.Upgrade(w, r, nil) // error ignored for sake of simplicityfor {// Read message from browsermsgType, msg, err := conn.ReadMessage()if err != nil {return}// Print the message to the consolefmt.Printf("%s sent: %s\n", conn.RemoteAddr(), string(msg))// Write message back to browserif err = conn.WriteMessage(msgType, msg); err != nil {return}} }) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {http.ServeFile(w, r, "H:\\go\\main\\websockets.html") }) http.ListenAndServe(":8080", nil)}
发送websocket请求的客户端:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>WebSockets</title></head><body><input id="input" type="text" /><button onclick="send()">Send</button><pre id="output"></pre><script>var input = document.getElementById("input");var output = document.getElementById("output");var socket = new WebSocket("ws://localhost:8080/echo");socket.onopen = function () {output.innerHTML += "Status: Connected\n";};socket.onmessage = function (e) {output.innerHTML += "Server: " + e.data + "\n";};function send() {socket.send(input.value);input.valuehttps://www.huyubaike.com/biancheng/= "";}</script></body></html>
【Go的网络编程详解】
经验总结扩展阅读
- gorm中的关联操作详解
- 甲亢病人可以汗蒸吗
- OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构
- 颈椎和胸椎痛怎么办
- 山芹菜饺子最正宗的做法
- 世界上的五大人种
- 巧克力钵仔糕的做法
- 不为所动的名言
- 泡鲁达怎么吃
- 怎么做好吃又美味的饮料