hotgo/server/internal/controller/websocket/handler/common/site.go

40 lines
953 B
Go

// Package common
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
package common
import (
"github.com/gogf/gf/v2/util/gconv"
"hotgo/internal/websocket"
)
var (
Site = cSite{}
)
type cSite struct{}
func (c *cSite) Join(client *websocket.Client, req *websocket.WRequest) {
name := gconv.String(req.Data["id"])
if !client.Tags.Contains(name) {
client.Tags.Append(name)
}
websocket.SendSuccess(client, req.Event, client.Tags.Slice())
}
func (c *cSite) Quit(client *websocket.Client, req *websocket.WRequest) {
name := gconv.String(req.Data["id"])
if client.Tags.Contains(name) {
client.Tags.RemoveValue(name)
}
websocket.SendSuccess(client, req.Event, client.Tags.Slice())
}
func (c *cSite) Ping(client *websocket.Client, req *websocket.WRequest) {
websocket.SendSuccess(client, req.Event)
}