3 Star 13 Fork 7

NightTC/Gobige

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
PublicFunc.go 1.77 KB
一键复制 编辑 原始数据 按行查看 历史
package serverMgr
import (
"fmt"
"strings"
"gitee.com/night-tc/gobige/common"
"gitee.com/night-tc/gobige/global"
)
const (
PATH_INFO = "info" //服务器信息
PATH_LOAD = "load" //服务器负载
PATH_STATUS = "status" //服务器状态
)
// 获取注册路径
func GetPath(groupid uint32, stype uint32, sid uint64) string {
return fmt.Sprintf("server/%d/%d/%d/%s", stype, groupid, sid, PATH_INFO)
}
// 指定分组和类型的监听
func GetWatchPath(sGroup uint32, sType uint32) string {
return fmt.Sprintf("server/%d/%d/", sType, sGroup)
}
// 获取写Load的路径
func GetPathLoad(groupid uint32, stype uint32, sid uint64) string {
return fmt.Sprintf("server/%d/%d/%d/%s", stype, groupid, sid, PATH_LOAD)
}
// 获取写状态的路径
func GetPathStatus(groupid uint32, stype uint32, sid uint64) string {
return fmt.Sprintf("server/%d/%d/%d/%s", stype, groupid, sid, PATH_STATUS)
}
// 折路径
func GetPathServerInfo(pathname string) (stype uint32, groupid uint32, sid uint64) {
sli := strings.Split(pathname, "/")
if len(sli) >= 4 {
return uint32(common.NewString(sli[1]).ToIntV()), uint32(common.NewString(sli[2]).ToIntV()), uint64(common.NewString(sli[3]).ToIntV())
}
return 0, 0, 0
}
// 根据类型监听服务器
func GetWatchByType(sType global.ServerTypeEnum) string {
return fmt.Sprintf("server/%d/", sType)
}
// 按需要拆数据
func GetInfoByPath(pathname string) (stype uint32, groupid uint32, sid uint64) {
sli := strings.Split(pathname, "/")
if len(sli) >= 2 && sli[1] != "" {
stype = uint32(common.NewString(sli[1]).ToUint64V())
}
if len(sli) >= 3 && sli[2] != "" {
groupid = uint32(common.NewString(sli[2]).ToUint64V())
}
if len(sli) >= 4 && sli[3] != "" {
sid, _ = common.NewString(sli[3]).ToUint64()
}
return stype, groupid, sid
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/night-tc/gobige.git
git@gitee.com:night-tc/gobige.git
night-tc
gobige
Gobige
344351ffdef8

搜索帮助