diff --git a/server/hallserver/proto/cs_proto.proto b/server/hallserver/proto/cs_proto.proto index adcdc096..e8ac0c27 100644 --- a/server/hallserver/proto/cs_proto.proto +++ b/server/hallserver/proto/cs_proto.proto @@ -212,7 +212,8 @@ message CMJoinRoom message SMJoinRoom { - + optional int32 errcode = 1; //错误码 0:成功 1:重连失败 + optional string errmsg = 2; //错误描述 } //解散房间 diff --git a/server/hallserver/room/room.go b/server/hallserver/room/room.go index 3fbdc825..71c2391d 100644 --- a/server/hallserver/room/room.go +++ b/server/hallserver/room/room.go @@ -13,12 +13,12 @@ type member struct { type room struct { cs.MsgHandlerImpl - roomId int32 + roomId string owner *member members map[string]*member } -func (this *room) init(roomId int32, owner common.Player) { +func (this *room) init(roomId string, owner common.Player) { this.roomId = roomId this.owner = newMember(owner) this.members = map[string]*member{ diff --git a/server/hallserver/room/roommgr.go b/server/hallserver/room/roommgr.go index fb0b40ef..6314f74b 100644 --- a/server/hallserver/room/roommgr.go +++ b/server/hallserver/room/roommgr.go @@ -2,26 +2,36 @@ package room import ( "cs" + "q5" "f5" "main/constant" "main/common" + "github.com/golang/protobuf/proto" . "main/global" ) type roomMgr struct { cs.MsgHandlerImpl currRoomId int32 - idHash map[int32]*room + idHash map[string]*room } func (this *roomMgr) Init() { - this.idHash = make(map[int32]*room) + this.idHash = make(map[string]*room) this.currRoomId = 10000 } func (this *roomMgr) UnInit() { } +func (this *roomMgr) getRoom(roomId string) *room { + room, ok := this.idHash[roomId] + if ok { + return room + } + return nil +} + func (this *roomMgr) ProcessCMMsg(handler *cs.CsNetMsgHandler, hdr *f5.MsgHdr) { switch handler.HandlerId { case constant.ROOM_MGR_HANDLER_ID: @@ -42,11 +52,13 @@ func (this *roomMgr) CMCreateRoom(hdr *f5.MsgHdr, msg *cs.CMCreateRoom) { hum := hdr.Context.(common.Player) rspMsg := &cs.SMCreateRoom{} if hum.GetRoom() != nil { + rspMsg.Errcode = proto.Int32(1) + rspMsg.Errmsg = proto.String("") hum.SendMsg(rspMsg) return } m := new(room) - m.init(this.genRoomIdx(), hum) + m.init(q5.ToString(this.genRoomIdx()), hum) this.idHash[m.roomId] = m hum.SendMsg(rspMsg) } @@ -55,8 +67,14 @@ func (this *roomMgr) CMJoinRoom(hdr *f5.MsgHdr, msg *cs.CMJoinRoom) { hum := hdr.Context.(common.Player) rspMsg := cs.SMJoinRoom{} if hum.GetRoom() != nil { + rspMsg.Errcode = proto.Int32(1) + rspMsg.Errmsg = proto.String("") hum.SendMsg(&rspMsg) return + } + r := this.getRoom(msg.GetRoomId()) + if r == nil { + } hum.SendMsg(&rspMsg) }