private void OnCreateRoom(SignalingServerMessage ssm) { IPEndPoint ipe = (IPEndPoint)ssm.Get(SignalingAttribute.RoomAddress); string tag = (string)ssm.Get(SignalingAttribute.RoomTag); string name = (string)ssm.Get(SignalingAttribute.RoomName); string des = (string)ssm.Get(SignalingAttribute.RoomDescription); string key = ipe.ToString(); if (tag.Length <= 0) { Console.WriteLine("Create Room: '[{0}]{1} Failed!'", tag, key); ResponseCreateRoom(false); } lock (_lock) { int idx = room.FindIndex(x => x.Key == key); if (idx != -1) { Console.WriteLine("Create Room: '[{0}]{1} Failed!'", tag, key); //room[idx].Update(tag); ResponseCreateRoom(false); } else { Room r = new Room(tag, ipe, des, name); room.Add(r); senderTable.Add(key, sender); clientKey = key; ResponseCreateRoom(true); Console.WriteLine("Create Room: " + r.ToString()); } } }
private void OnJoinRoom(SignalingServerMessage ssm) { IPEndPoint roomName = (IPEndPoint)ssm.Get(SignalingAttribute.RoomAddress); string tag = (string)ssm.Get(SignalingAttribute.RoomTag); string key = roomName.ToString(); lock (_lock) { Room target = room.Find(x => x.Key == key && x.Tag == tag); if (target != null) { if (senderTable.ContainsKey(key)) { ResponseJoinRoom(true); ResponseConnectionAttemptRequest(key, RemoteEndPoint); } else { ResponseJoinRoom(false); } Console.WriteLine("Peer '{0}' Join Room: '{1}'", RemoteEndPoint.ToString(), key); } else { Console.WriteLine("Peer '{0}' Join Room: '{1}' Failed", RemoteEndPoint.ToString(), key); } } }
private void OnGetRoomList(SignalingServerMessage ssm) { ResponseGetRoomList((string)ssm.Get(SignalingAttribute.RoomTag)); }
private void OnCloseRoom(SignalingServerMessage ssm) { IPEndPoint ipe = (IPEndPoint)ssm.Get(SignalingAttribute.RoomAddress); CloseRoom(ipe.ToString()); }