This commit is contained in:
aozhiwei 2023-10-10 15:17:23 +08:00
commit effe90537f
10 changed files with 120 additions and 133 deletions

View File

@ -1,13 +1,13 @@
package app
import (
"f5"
"q5"
"mt"
"cs"
"ss"
"f5"
"main/constant"
. "main/global"
"mt"
"q5"
"ss"
)
type app struct {
@ -82,3 +82,7 @@ func (this *app) AddNetMsg(hdr *f5.MsgHdr) {
func (this *app) registerDataSources() {
}
func (this *app) GetHttpListenPort() int32 {
return mt.Table.HallCluster.GetHttpListenPort()
}

View File

@ -4,8 +4,8 @@ import (
"net"
"cs"
"ss"
"f5"
"ss"
proto "github.com/golang/protobuf/proto"
)
@ -42,11 +42,10 @@ type PlayerMgr interface {
type WspListener interface {
ProcessSSMMsg(*ss.SsNetMsgHandler, *f5.MsgHdr)
SendProxyMsg(net.Conn, uint16, proto.Message);
SendProxyMsg(net.Conn, uint16, proto.Message)
}
type HttpListener interface {
}
type App interface {

View File

@ -10,8 +10,8 @@ type httpListener struct {
}
func (this *httpListener) Init() {
this.httpServer = new (f5.HttpServer)
this.httpServer.Init("imserver.httplistener", 1000 * 10)
this.httpServer = new(f5.HttpServer)
this.httpServer.Init("hallserver.httplistener", 1000*10)
this.httpServer.Start(mt.Table.HallCluster.GetHttpListenPort())
}

View File

@ -1,11 +1,11 @@
package room
import (
"q5"
"f5"
"cs"
"main/common"
"f5"
"github.com/golang/protobuf/proto"
"main/common"
"q5"
)
type member struct {

View File

@ -2,12 +2,12 @@ package room
import (
"cs"
"q5"
"f5"
"mt"
"github.com/golang/protobuf/proto"
"main/common"
"main/constant"
"github.com/golang/protobuf/proto"
"mt"
"q5"
)
type room struct {
@ -54,8 +54,8 @@ func (this *room) init(roomId string,
}
func (this *room) unInit() {
for ; len(this.teamUuidHash) > 0; {
for _, t := range(this.teamUuidHash) {
for len(this.teamUuidHash) > 0 {
for _, t := range this.teamUuidHash {
t.unInit()
break
}
@ -170,7 +170,7 @@ func (this *room) fillMFCurrentRoom(pb *cs.MFCurrentRoom) {
pb.Owner = new(cs.MFMember)
this.owner.fillMFMember(pb.Owner)
q5.NewSlice(&pb.TeamList, 0, 10)
for _, t := range(this.teamUuidHash) {
for _, t := range this.teamUuidHash {
pbT := &cs.MFTeam{}
t.fillMFTeam(pbT)
q5.AppendSlice(&pb.TeamList, pbT)
@ -266,7 +266,7 @@ func (this *room) CMKickoutTeam(hdr *f5.MsgHdr, msg *cs.CMKickoutTeam) {
hum := hdr.Context.(common.Player)
m := this.getMember(hum.GetAccountId())
t := this.getTeamByUuid(msg.GetTeamUuid())
if m == this.owner && t != nil && t != m.team && this.roomState == ROOM_INIT_STATE{
if m == this.owner && t != nil && t != m.team && this.roomState == ROOM_INIT_STATE {
notifyMsg := &cs.SMRoomKickoutNotify{}
this.broadcastMsg(notifyMsg)
t.unInit()
@ -296,7 +296,7 @@ func (this *room) CMCloseNotify(hdr *f5.MsgHdr, msg *cs.CMCloseNotify) {
}
func (this *room) broadcastMsg(msg proto.Message) {
for _, m := range(this.members) {
for _, m := range this.members {
if m.hum.GetRoom() == this {
m.hum.SendMsg(msg)
}
@ -324,7 +324,7 @@ func (this *room) doDisband(reason int32) {
notifyMsg := &cs.SMRoomDisbandNotify{}
notifyMsg.RoomId = proto.String(this.roomId)
notifyMsg.Reason = proto.Int32(reason)
for _, m := range(this.members) {
for _, m := range this.members {
if m.hum.GetRoom() == this {
m.hum.SendMsg(notifyMsg)
}
@ -338,9 +338,9 @@ func (this *room) doStart(reason int32) {
this.startReason = ROOM_AUTO_START_TYPE
f5.GetTimer().SetIntervalExWp(
1000,
func (e int32, args *q5.Args) {
func(e int32, args *q5.Args) {
if e == q5.TIMER_EXEC_EVENT {
if f5.GetApp().GetNowSeconds() - this.startTime <
if f5.GetApp().GetNowSeconds()-this.startTime <
int64(mt.Table.Config.Get().GetGameStartNotifyTime()) {
this.notifyGameStart()
}
@ -362,7 +362,7 @@ func (this *room) notifyGameStart() {
if this.gameStartNotifyMsg == nil {
this.genGameStartNotifyMsg()
}
for _, m := range(this.members) {
for _, m := range this.members {
if m.state == MEMBER_READY_STATE &&
m.hum.GetRoom() == this &&
!m.closeGameStartNotify {
@ -372,7 +372,10 @@ func (this *room) notifyGameStart() {
}
func (this *room) genGameStartNotifyMsg() {
if this.gameStartNotifyMsg == nil {
if this.gameStartNotifyMsg != nil {
return
}
this.gameStartNotifyMsg = &cs.SMRoomGameStartNotify{}
this.gameStartNotifyMsg.ZoneId = proto.Int32(this.config.zoneId)
this.gameStartNotifyMsg.NodeId = proto.Int32(this.config.nodeId)
@ -382,9 +385,9 @@ func (this *room) genGameStartNotifyMsg() {
NodeId int32 `json:"node_id"`
RoomUuid string `json:"room_uuid"`
StartTime int32 `json:"start_time"`
TeamList [] struct {
TeamList []struct {
TeamUuid string `json:"team_uuid"`
Members [] struct {
Members []struct {
AccountId string `json:"account_id"`
} `json:"members"`
} `json:"team_list"`
@ -395,13 +398,13 @@ func (this *room) genGameStartNotifyMsg() {
StartTime: int32(this.startTime),
}
q5.NewSlice(&startInfo.TeamList, 0, 10)
for _, t := range(this.teamUuidHash) {
for _, t := range this.teamUuidHash {
if t.hasAlreadMember() {
ele := q5.NewSliceElement(&startInfo.TeamList)
ele.TeamUuid = t.teamUuid
q5.NewSlice(&ele.Members, 0, 4)
t.members.ForEach(
func (data interface{}) bool {
func(data interface{}) bool {
m := data.(*member)
if m.state == MEMBER_READY_STATE {
ele2 := q5.NewSliceElement(&ele.Members)
@ -412,12 +415,11 @@ func (this *room) genGameStartNotifyMsg() {
}
}
this.gameStartNotifyMsg.CustomRoomPayload = proto.String(q5.EncodeJson(&startInfo))
}
}
func (this *room) canStart() bool {
alreadyNum := 0
for _, t := range(this.teamUuidHash) {
for _, t := range this.teamUuidHash {
if t.hasAlreadMember() {
alreadyNum++
}
@ -491,8 +493,8 @@ func (this *room) delayDeleteRoom() {
panic("errror dealyDeleteRoom")
}
this.delayDeleteTimer = f5.GetTimer().SetTimeoutExWp(
1000 * mt.Table.Config.Get().GetDelayDeleteTime(),
func (e int32, args *q5.Args) {
1000*mt.Table.Config.Get().GetDelayDeleteTime(),
func(e int32, args *q5.Args) {
if e == q5.TIMER_EXEC_EVENT {
this.unInit()
}
@ -508,8 +510,8 @@ func newRoom() *room {
r.entry.Init(r)
r.attacher = f5.GetTimer().NewTimerAttacher()
r.startTimer = f5.GetTimer().SetTimeoutExWp(
1000 * mt.Table.Config.Get().GetAutoStartTime(),
func (e int32, args *q5.Args) {
1000*mt.Table.Config.Get().GetAutoStartTime(),
func(e int32, args *q5.Args) {
if e == q5.TIMER_EXEC_EVENT {
r.autoStart()
}

View File

@ -2,12 +2,12 @@ package room
import (
"cs"
"q5"
"f5"
"main/constant"
"main/common"
"github.com/golang/protobuf/proto"
"main/common"
"main/constant"
. "main/global"
"q5"
)
type roomMgr struct {
@ -116,7 +116,7 @@ func (this *roomMgr) CMSearchRoom(hdr *f5.MsgHdr, msg *cs.CMSearchRoom) {
sinceId := msg.GetSinceId()
roomId := msg.GetRoomId()
this.roomList.ForEach(
func (data interface{}) bool {
func(data interface{}) bool {
r := data.(*room)
if r.roomIdx > sinceId && r.viewable() {
if roomId != "" && roomId != r.roomId {

View File

@ -1,9 +1,9 @@
package room
import (
"q5"
"cs"
"github.com/golang/protobuf/proto"
"q5"
)
type team struct {
@ -22,7 +22,7 @@ func (this *team) init(room *room, teamId int32, teamUuid string) {
func (this *team) unInit() {
this.members.ForEach(
func (data interface{}) bool {
func(data interface{}) bool {
m := data.(*member)
m.unInit()
return true
@ -37,7 +37,7 @@ func (this *team) fillMFTeam(pb *cs.MFTeam) {
pb.TeamUuid = proto.String(this.teamUuid)
q5.NewSlice(&pb.Members, 0, 4)
this.members.ForEach(
func (data interface{}) bool {
func(data interface{}) bool {
m := data.(*member)
pbM := &cs.MFMember{}
m.fillMFMember(pbM)
@ -58,7 +58,7 @@ func (this *team) getMemberNum() int32 {
func (this *team) hasAlreadMember() bool {
ok := false
this.members.ForEach(
func (data interface{}) bool {
func(data interface{}) bool {
m := data.(*member)
if m.state == MEMBER_READY_STATE {
ok = true
@ -72,7 +72,7 @@ func (this *team) hasAlreadMember() bool {
func (this *team) getOwnerCandidate() *member {
var ownerCandidate *member
this.members.ForEach(
func (data interface{}) bool {
func(data interface{}) bool {
m := data.(*member)
if m.hum.IsOnline() {
ownerCandidate = m

View File

@ -28,11 +28,9 @@ func (this *App) Init() {
chatMgr.init()
cacheMgr.init()
wspListener.init()
httpListener.init()
}
func (this *App) UnInit() {
httpListener.unInit()
playerMgr.unInit()
handlerMgr.unInit()
wspListener.unInit()
@ -110,3 +108,7 @@ func (this *App) registerDataSources() {
mt.Table.FriendDb.GetById(0).GetDatabase(),
30)
}
func (this *App) GetHttpListenPort() int32 {
return mt.Table.IMCluster.GetHttpListenPort()
}

View File

@ -4,7 +4,6 @@ var app = new(App)
var wspListener = new(WSPListener)
var playerMgr = new(PlayerMgr)
var handlerMgr = new(HandlerMgr)
var httpListener = new(HttpListener)
var friendMgr = new(FriendsMgr)
var cacheMgr = new(CacheMgr)

View File

@ -1,19 +0,0 @@
package main
import (
"f5"
"mt"
)
type HttpListener struct {
httpServer *f5.HttpServer
}
func (this *HttpListener) init() {
this.httpServer = new (f5.HttpServer)
this.httpServer.Init("imserver.httplistener", 1000 * 10)
this.httpServer.Start(mt.Table.IMCluster.GetHttpListenPort())
}
func (this *HttpListener) unInit() {
}