前端
package main
import (
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"net/http"
)
var upGrader = websocket.Upgrader{
CheckOrigin: func (r *http.Request) bool {
return true
},
}
//webSocket请求ping 返回pong
func ping(c *gin.Context) {
//升级get请求为webSocket协议
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
return
}
//延迟关闭ws连接
defer ws.Close()
for {
//读取ws中的数据
mt, message, err := ws.ReadMessage()
if err != nil {
break
}
//如果发送的信息是ping则返回pong
if string(message) == "ping" {
message = []byte("pong")
}
//写入ws数据 向前端返回数据
err = ws.WriteMessage(mt, message)
if err != nil {
break
}
}
}
func main() {
r := gin.Default()
r.GET("/ping/", ping)
r.Run(":8000")
}
后端
建立连接
发送信息
本章节只是简单使用gin框架搭配gorilla工具实现websocket连接,如果想实现IM实时通讯系统,可以使用go结构体变、channel管道、redisPubsub等功能实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)