查看“Go网络编程-Websockets”的源代码
←
Go网络编程-Websockets
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
这个例子将展示如何在Go中使用websockets。我们将构建一个简单的服务器,它将回显我们发送给它的所有内容。为此,我们必须像这样获取流行的gorilla/websocket库: <syntaxhighlight lang="shell">$ go get github.com/gorilla/websocket</syntaxhighlight> 从现在开始,我们编写的每个应用程序都将能够使用这个库。 <br> <syntaxhighlight lang="go">// websockets.go package main import ( "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 simplicity for { // Read message from browser msgType, msg, err := conn.ReadMessage() if err != nil { return } // Print the message to the console fmt.Printf("%s sent: %s\n", conn.RemoteAddr(), string(msg)) // Write message back to browser if err = conn.WriteMessage(msgType, msg); err != nil { return } } }) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "websockets.html") }) http.ListenAndServe(":8080", nil) }</syntaxhighlight> <br> <syntaxhighlight lang="html"><!-- websockets.html --> <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.value = ""; } </script></syntaxhighlight> <br> <syntaxhighlight lang="shell">$ go run websockets.go [127.0.0.1]:53403 sent: Hello Go Web Examples, you're doing great!</syntaxhighlight> <br>
返回至“
Go网络编程-Websockets
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息