代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"gitee.com/douyaye/zzserver"
"github.com/gin-gonic/gin"
"log"
"net/http"
"time"
//"github.com/bean0815/zzserver"
//"gitee.com/douyaye/zzserver"
)
func main() {
//开启服务
srv := zzserver.NewZZServer()
go func() {
t := time.Tick(5 * time.Second)
for {
<-t
n := time.Now()
srv.Range(func(c *zzserver.Client) bool {
if n.Sub(c.LastMsgTime) > 10*time.Second {
c.Close()
}
return true
})
}
}()
gin.SetMode("release")
g := gin.Default()
g.GET("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"code": 0})
})
srv.SetGinEngine(g)
srv.SetRouter(&P{}) //绑定路由接口
srv.SetWebsocketPort(9999) //websocket端口
srv.SetWsPath("/gamefish")
srv.Range(func(c *zzserver.Client) bool {
fmt.Println(c.LastMsgTime)
return true
})
//srv.SetTCPPort(9988) //不设置就不会启动监听
srv.Start()
srv.WaitCloseSignal(func() {
log.Println("关闭前")
}, func() {
log.Println("关闭后")
})
}
type P struct {
zzserver.BaseRouter
}
// OnMessage 接收客户端发送的消息
func (p *P) OnMessage(c *zzserver.Client, message []byte) {
if string(message) == "close" {
c.Server.SendToAll([]byte(fmt.Sprintf("user%d closed", c.ConnectionIndex)))
c.Close()
} else {
c.Server.SendToAll([]byte(fmt.Sprintf("user%d say: %s", c.ConnectionIndex, string(message))))
}
}
// OnDisconnect 客户端断开
func (p *P) OnDisconnect(c *zzserver.Client) {
}
func (p *P) OnServerClose() {
//log.Println("OnServerClose.....")
//time.Sleep(3 * time.Second)
//log.Println("OnServerClose.....")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。