game2006go/server/imserver/playermgr.go
2023-08-13 15:46:28 +08:00

75 lines
1.8 KiB
Go

package main
import (
"cs"
"q5"
"f5"
"mt"
"fmt"
)
type PlayerMgr struct {
cs.MsgHandlerImpl
}
func (this *PlayerMgr) init() {
f5.GetTimer().SetInterval(
1000,
func (e int32, args *q5.Args) {
if e == q5.TIMER_EXEC_EVENT {
mt.Table.MasterCluster.Traverse(
func (meta *mt.MasterCluster) bool {
this.reportServerState(meta.GetIp(), meta.GetListenPort())
return true
})
}
})
conn := q5.NewMysql(
mt.Table.GameDb.GetById(0).GetHost(),
mt.Table.GameDb.GetById(0).GetPort(),
mt.Table.GameDb.GetById(0).GetUser(),
mt.Table.GameDb.GetById(0).GetPasswd(),
mt.Table.GameDb.GetById(0).GetDatabase(),
)
conn.Open()
rows, err := conn.Query("SELECT * FROM t_user")
if err == nil {
columns, err := rows.Columns()
if err == nil {
f5.GetSysLog().Info("mysql rows", columns)
}
} else {
f5.GetSysLog().Info("mysql error", err)
}
}
func (this *PlayerMgr) unInit() {
}
func (this *PlayerMgr) CMLogin(hdr *f5.MsgHdr, msg *cs.CMLogin) {
serverInfo := "192.168.100.39:1000"
rspMsg := &cs.SMLogin{}
rspMsg.ServerInfo = &serverInfo
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
}
func (this *PlayerMgr) reportServerState(masterIp string, masterPort int32) {
params := map[string]string {
"node_id": q5.ToString(f5.GetApp().GetNodeId()),
"instance_id": q5.ToString(f5.GetApp().GetInstanceId()),
"ip": "",
"port": q5.ToString(mt.Table.IMCluster.GetListenPort()),
"online_num": q5.ToString(0),
"room_num": q5.ToString(0),
"channel": q5.ToString(0),
"alive_count": q5.ToString(0),
"servicing": q5.ToString(1),
}
f5.GetHttpCliMgr().SendQuickChannelJsLikeRequest(
fmt.Sprintf("http://%s:%d/webapp/index.php?c=GS&a=report&", masterIp, masterPort),
params,
func (rsp f5.HttpCliResponse) {
f5.GetSysLog().Info(rsp.GetRawData())
})
}