1 Star 1 Fork 1

qianjin/go-websocket-demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
server.go 891 Bytes
一键复制 编辑 原始数据 按行查看 历史
qianjin 提交于 2021-12-22 20:52 +08:00 . initial commit
package main
import (
"go-websocket/impl"
"net/http"
"time"
)
import "github.com/gorilla/websocket"
var (
upgrader = websocket.Upgrader{
// 允许跨域
CheckOrigin: func(r *http.Request) bool {
return true
},
}
)
func wsHandler(w http.ResponseWriter, r *http.Request){
var (
wsConn *websocket.Conn
err error
data []byte
conn *impl.Connection
)
// Upgrade: websocket
if wsConn, err = upgrader.Upgrade(w, r, nil);err!=nil{
return
}
conn = impl.InitConnection(wsConn)
// 心跳
go func(){
for{
if err:=conn.WriteMessage([]byte("heartbeat"));err!=nil{
return
}
time.Sleep(1*time.Second)
}
}()
for{
if data, err = conn.ReadMessage();err!=nil{
goto ERR
}
if err = conn.WriteMessage(data);err!=nil{
goto ERR
}
}
ERR:
conn.Close()
}
func main() {
http.HandleFunc("/ws", wsHandler)
http.ListenAndServe("0.0.0.0:7777", nil)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/pangqianjin/go-websocket-demo.git
git@gitee.com:pangqianjin/go-websocket-demo.git
pangqianjin
go-websocket-demo
go-websocket-demo
master

搜索帮助