/// <summary>
        /// Handle the client registration
        /// </summary>
        /// <param name="socket"></param>
        /// <param name="nickname"></param>
        /// <param name="rawMessage"></param>
        /// <returns></returns>
        public async Task <string> Handle(WebSocket socket, string nickname, string rawMessage)
        {
            var result = "";

            if (!IsValidNickName(rawMessage))
            {
                result = ServerMessageConstants.GetMessage(ServerMessageConstants.NICKNAME_INVALID, rawMessage);
                await _socketHandler.SendMessage(socket, result);

                return(result);
            }

            if (_connectionManager.IsNickNameExists(rawMessage))
            {
                result = ServerMessageConstants.GetMessage(ServerMessageConstants.NICKNAME_ALREADY_TAKEN, rawMessage);
                await _socketHandler.SendMessage(socket, result);

                return(result);
            }


            if (_connectionManager.RegisterNickName(socket, rawMessage))
            {
                result = ServerMessageConstants.GetMessage(ServerMessageConstants.SUCCESSFULLY_REGISTERED, rawMessage);
                await _socketHandler.SendMessage(socket, result);

                var message = ServerMessageConstants.GetMessage(ServerMessageConstants.JOINED_GENERAL_CHANNEL, rawMessage);
                await _socketHandler.SendMessageToAll(message);
            }
            return(result);
        }
예제 #2
0
        /// <summary>
        /// Handle the message
        /// </summary>
        /// <param name="socket"></param>
        /// <param name="nickname"></param>
        /// <param name="rawMessage"></param>
        /// <returns></returns>
        public async Task <string> Handle(WebSocket socket, string nickname, string rawMessage)
        {
            var message = ServerMessageConstants.GetMessage(ServerMessageConstants.GENERAL_MESSAGE, nickname, rawMessage);

            await _socketHandler.SendMessageToAll(message);

            return(message);
        }