Exemplo n.º 1
0
        /// <summary>
        /// ћетод, при получении сообщени¤ от клиента
        /// </summary>
        /// <param name="client"></param>
        /// <param name="command"></param>
        private void OnPushMessage(IRemoteClient client, IRoomCommand command)
        {
            if (client.RoomChannel == null)
            {
                client.Detach();
                return;
            }

            //если у комнаты ещЄ не истекло врем¤, то отправл¤ем команду
            if (!client.RoomChannel.IsExpired)
            {
                client.RoomChannel.SendAll(command, c => c != client);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///  лиент входит в комнату
        /// </summary>
        /// <param name="client"></param>
        /// <param name="command"></param>
        private void OnClientEnterToRoom(IRemoteClient client, IRoomCommand command)
        {
            //пытаемс¤ получить номер комнаты
            string roomId;

            if (!command.Data.TryGetValue("RoomId", out roomId))
            {
                _log.ErrorFormat("Client {0} try create room with empty Id", client.ClientId);
                client.Detach();
                return;
            }

            //устанавливаем номер комнаты
            client.Room = roomId;

            //возвращаем или создаем комнату
            var room = GetRoom(roomId) ?? CreateRoom(roomId);

            //добавл¤ем туда клиента
            room.Add(client);
        }