multi channel chat demo
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"../../"
|
||||
"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")
|
||||
}
|
||||
Reference in New Issue
Block a user