MelodyGo 的 WebSocket 框架
Melody 是一個(gè) Go 語(yǔ)言的微型 WebSocket 框架,基于 github.com/gorilla/websocket 開(kāi)發(fā),主要特性:
-
接口簡(jiǎn)單易用,類似 net/http 或者 Gin
-
提供給所有廣播以及給選擇連接會(huì)話廣播的簡(jiǎn)單途徑
-
消息緩沖對(duì)并發(fā)寫(xiě)是安全的
-
可自動(dòng)處理 ping/pong 和會(huì)話超時(shí)
一個(gè)簡(jiǎn)單的實(shí)例:
代碼:
package main
import (
"github.com/olahol/melody"
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
m := melody.New()
r.GET("/", func(c *gin.Context) {
http.ServeFile(c.Writer, c.Request, "index.html")
})
r.GET("/channel/:name", func(c *gin.Context) {
http.ServeFile(c.Writer, c.Request, "chan.html")
})
r.GET("/channel/:name/ws", func(c *gin.Context) {
m.HandleRequest(c.Writer, c.Request)
})
m.HandleMessage(func(s *melody.Session, msg []byte) {
m.BroadcastFilter(msg, func(q *melody.Session) bool {
return q.Request.URL.Path == s.Request.URL.Path
})
})
r.Run(":5000")
}評(píng)論
圖片
表情
