go websocket
獲得相應包支援:go get golang.org/x/net/websocket
package main
import (
"log"
"net/http"
"os"
"golang.org/x/net/websocket"
)
func main() {
log.Println(os.Args[0]) //第一個引數,顯示檔案路徑
http.Handle("/", websocket.Handler(Echo))
if err := http.ListenAndServe(":8088", nil); err != nil {
log.Println(err)
}
}
func Echo(ws *websocket.Conn) {
for {
var raply string
if err := websocket.Message.Receive(ws, &raply); err != nil { //get infomation,write in adress
log.Println("can't receive")
break
}
msg := "Received:" + raply
log.Println(msg)
if err := websocket.Message.Send(ws, "come back infomation"); err != nil { //send infomation
log.Println("can't send")
break
}
}
}
解釋:
(1)http.Handle("/", websocket.Handler(Echo))
主函式中的handle函式,將路由和相關的方法聯絡起來,不過要經過轉化
(2)func Echo(ws *websocket.Conn)
這個函式中實現了邏輯的實行,for迴圈一直處理使用者請求
其中: websocket.Message.Receive(ws, &raply)實現了資料的接收,存入對應的記憶體地址。
websocket.Message.Send(ws, "come back infomation")傳送相應的資料,前臺可以接收這個資料。
以下是前臺模擬
192.168.149.1是我自己電腦的IP,根據自己的IP不同,提交的地址不一樣,在這裡改成自己的IP地址或者想要提交的伺服器地址即可
<html>
<head>
<title></title>
</head>
<body>
<script>
var sock=null
var wxurl="ws://192.168.149.1:8088"
window.onload=function(){
sock= new WebSocket(wxurl)
sock.onopen = function(){
console.log("connect to "+wxurl)
}
sock.onmessage = function(e){
console.log("message:"+e.data)
alert(e.data)
$("#cs").text(e.data)
}
sock.onclose = function(e){
console.log("close:"+e.code)
}
}
function send(){
var msg = document.getElementById("ms").value
sock.send(msg)
}
</script>
<form>
<input id="ms" type="text" value="hello word" >
<label id="cs"></label>
</form>
<button onclick="send()" >push</button>
</body>
</html>
相關文章
- go websocket心跳GoWeb
- Go 語言 WebSocket 除錯工具GoWeb除錯
- 在 go websocket server 與 javascript websocket client 互動中使用 flatbuffersGoWebServerJavaScriptclient
- 使用Go語言建立WebSocket服務GoWeb
- 使用 Go 語言建立 WebSocket 服務GoWeb
- Go使用websocket實現彈幕功能GoWeb
- [譯] Go 實現百萬 WebSocket 連線GoWeb
- Go 語言 Web tail -f 工具, 基於 WebSocketGoWebAI
- 瀏覽器與go語言的websocket通訊瀏覽器GoWeb
- Go實現基於WebSocket的彈幕服務GoWeb
- 用 Go + WebSocket 快速實現一個 chat 服務GoWeb
- html5+go+websocket簡單例項程式碼HTMLGoWeb單例
- 玩轉 Go 生態|Hertz WebSocket 擴充套件簡析GoWeb套件
- Go語言:xterm.js-websocket Web終端堡壘機GoJSWeb
- 01 . Go語言實現SSH遠端終端及WebSocketGoWeb
- gws: 兼顧效能與使用者友好的go websocket serverGoWebServer
- 用 Go 編寫一個簡單的 WebSocket 推送服務GoWeb
- Go+websocket+protobuf 做的實時線上互動聊天工具GoWeb
- WebSocketWeb
- 記一次Go websocket 專案記憶體洩露排查 + 使用Go pprof定位記憶體洩露GoWeb記憶體洩露
- 【譯】WebSocket協議第三章——WebSocket網址(WebSocket URIs)Web協議
- WebSocket的故事(一)—— WebSocket的由來Web
- 深入淺出Websocket(一)Websocket協議Web協議
- WebSocket 用法Web
- WebSocket APIWebAPI
- WebSocket 握手Web
- FastAPI WebSocketASTAPIWeb
- 初探websocketWeb
- WebSocket 教程Web
- Golang 官方認可的 websocket 庫-gorilla/websocketGolangWeb
- WebSocket於HTTP 、WebSocket與Socket的區別WebHTTP
- WebSocket原理與實踐(二)---WebSocket協議Web協議
- 深入淺出Websocket(二)分散式Websocket叢集Web分散式
- Sanic WebSocket 使用Web
- WebSocket 入門Web
- websocket及延展Web
- websocket使用(vue)WebVue
- 簡說websocketWeb