예제 #1
0
        public void CreateRoom(CS_CreateRoom cs, string connectionId)
        {
            try
            {
                SC_CreateRoom sc = new SC_CreateRoom()
                {
                    Code = 1,
                };

                Room room = _host.Find(r => r.PrivateIp == cs.PrivateIp && r.Port == cs.Port);
                if (room != null)
                {
                    sc.Code = 101;
                    sc.Msg  = "CreateRoom Fail. Ip & Port are already using";
                    HubConnector.Client(connectionId).ErrorMsg(JsonConvert.SerializeObject(sc));
                }

                Room data = new Room()
                {
                    ConnectionId = connectionId,
                    PrivateIp    = cs.PrivateIp,
                    Port         = cs.Port,
                    State        = RoomState.Wait,
                    GameName     = cs.GameName,
                    Player       = 1,
                };

                _host.Add(data);

                User user = new User()
                {
                    ConnectionId = connectionId,
                    RoonNum      = _host.Count - 1,
                };

                _user.Add(user);


                HubConnector.Client(connectionId).ResponseCreateRoom(JsonConvert.SerializeObject(sc));
            }
            catch (Exception ex) {
                HubModel error = new HubModel()
                {
                    Code = 101,
                    Msg  = "CreateRoom Exception Fail : " + ex.ToString(),
                };

                HubConnector.Client(connectionId).ErrorMsg(JsonConvert.SerializeObject(error));
            }
        }
예제 #2
0
        public void RequestCreateRoom(object args)
        {
            CS_CreateRoom cs = JsonConvert.DeserializeObject <CS_CreateRoom>(args.ToString());

            _host.CreateRoom(cs, Context.ConnectionId);
        }