コード例 #1
0
        public void P_User_Exit_Room(ARWObject obj, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            ARWRoom currentRoom = ARWRoomManager.instance.allRooms.Where(a => a.id == specialReqParam.GetInt("room_id")).FirstOrDefault();

            if (currentRoom == null)
            {
                return;
            }

            int     userId     = specialReqParam.GetInt("user_id");
            ARWUser userLeaved = currentRoom.userList.Where(a => a.userId == userId).FirstOrDefault();

            if (userLeaved == null)
            {
                return;
            }

            currentRoom.RemoveUser(userLeaved);

            if (ARWEvents.USER_EXIT_ROOM.handler == null)
            {
                return;
            }

            ARWEvents.USER_EXIT_ROOM.handler(obj, userLeaved);
        }
コード例 #2
0
        public void P_User_Enter_Room(ARWObject obj, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            string  userProperties = specialReqParam.GetString("user_properties");
            ARWUser newUser        = ARWUserManager.instance.CreateUser(new JSONObject(userProperties));

            ARWRoom currentRoom = ARWRoomManager.instance.allRooms.Where(a => a.id == specialReqParam.GetInt("room_id")).FirstOrDefault();

            if (currentRoom == null)
            {
                return;
            }
            currentRoom.AddUserToRoom(newUser);

            if (ARWEvents.USER_ENTER_ROOM.handler == null)
            {
                return;
            }

            ARWEvents.USER_ENTER_ROOM.handler(obj, newUser);
        }
コード例 #3
0
        public void SendLoginRequest(string userName, ARWObject arwObject)
        {
            SpecialRequestParam loginParam = new SpecialRequestParam();

            loginParam.PutVariable("user_name", userName);

            Request loginRequest = new Request(ARWServer_CMD.Login, arwObject, loginParam);

            this.SendRequest(loginRequest);
        }
コード例 #4
0
        public void P_Extension_Response(ARWObject obj, SpecialRequestParam specialReqParam)
        {
            ExtensionRequest currentExtension = ARWServer.instance.GetExtensionRequest(specialReqParam.GetString("cmd"));

            if (currentExtension == null)
            {
                return;
            }

            currentExtension.handler(obj);
        }
コード例 #5
0
        public void SendExtensionRequest(string cmd, ARWObject obj, bool roomRequest)
        {
            SpecialRequestParam reqSpParam = new SpecialRequestParam();

            reqSpParam.PutVariable("cmd", cmd);
            reqSpParam.PutVariable("isRoom", roomRequest);
            if (roomRequest)
            {
                reqSpParam.PutVariable("room_id", ARWUserManager.instance.me.lastJoinedRoom);
            }

            Request newRequest = new Request(ARWServer_CMD.Extension_Request, obj, reqSpParam);

            this.SendRequest(newRequest);
        }
コード例 #6
0
        public void P_Login(ARWObject obj, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            ARWUser newUser = ARWUserManager.instance.CreateUser(new JSONObject(specialReqParam.GetString("user_properties")));

            if (ARWEvents.LOGIN.handler == null)
            {
                return;
            }

            ARWEvents.LOGIN.handler(obj, newUser);
        }
コード例 #7
0
        public static Request Extract(string reqData)
        {
            string[] reqParts = reqData.Split(new string[] { "^^" }, StringSplitOptions.None);
            if (reqParts.Length != 3)
            {
                return(null);
            }

            string              eventName    = reqParts[0];
            ARWObject           obj          = IARWObject.Extract(reqParts[1]);
            SpecialRequestParam specialParam = SpecialRequestParam.Extract(reqParts[2]);

            Request newReq = new Request(eventName, obj, specialParam);

            return(newReq);
        }
コード例 #8
0
        public void P_Connection_Lost(ARWObject arwObject, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            ARWServer.instance.isConnected = false;
            if (ARWEvents.CONNECTION_LOST.handler == null)
            {
                return;
            }

            ARWObject obj = new IARWObject();

            ARWEvents.CONNECTION_LOST.handler(obj);
        }
コード例 #9
0
        public void P_Join_Room(ARWObject obj, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            string     roomData     = specialReqParam.GetString("room_properties");
            JSONObject roomDataJson = new JSONObject(roomData);
            ARWRoom    newRoom      = ARWRoomManager.instance.CreateRoom(roomData);

            ARWUserManager.instance.me.lastJoinedRoom = newRoom;

            if (ARWEvents.ROOM_JOIN.handler == null)
            {
                return;
            }

            ARWEvents.ROOM_JOIN.handler(obj, newRoom);
        }
コード例 #10
0
        public void P_Connection(ARWObject arwObject, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            // DateTime t = DateTime.Parse(specialReqParam.GetString("server_time"));
            // ARWServer.instance.SetServerTime(t);

            if (specialReqParam.GetString("error") == "")
            {
                ARWServer.instance.isConnected = true;
            }

            if (ARWEvents.CONNECTION.handler != null)
            {
                ARWEvents.CONNECTION.handler(arwObject);
            }
        }
コード例 #11
0
        public byte[] Compress()
        {
            string reqData = "";

            if (this.arwObject == null)
            {
                this.arwObject = new IARWObject();
            }
            if (this.specialRequestParam == null)
            {
                this.specialRequestParam = new SpecialRequestParam();
            }

            string arwObjData = System.Text.Encoding.UTF8.GetString(this.arwObject.Compress()).Replace("\0", null).Replace("\"", null);

            reqData += this.eventName + "^^";
            reqData += arwObjData + "^^";
            reqData += this.specialRequestParam.Compress();

            return(System.Text.Encoding.UTF8.GetBytes(reqData));
        }
コード例 #12
0
 public Request(string eventName, ARWObject arwObject, SpecialRequestParam sP = null)
 {
     this.eventName           = eventName;
     this.arwObject           = arwObject;
     this.specialRequestParam = sP;
 }