Example #1
0
        /// <summary>
        /// Determine if request has concrete type and parse it, if type is not expecting - return null
        /// </summary>
        public T TryToGetSpecificRequest <T>(DuplexNetworkRequestType type, string json) where T : IWebSocketRequestModel
        {
            var data = (json ?? "");

            try
            {
                switch (type)
                {
                case DuplexNetworkRequestType.Chat:
                    return((T)Convert.ChangeType(data.ToObject <ChatSendModel>(), typeof(T)));

                case DuplexNetworkRequestType.Login:
                    return((T)Convert.ChangeType(data.ToObject <LoginModel>(), typeof(T)));

                case DuplexNetworkRequestType.UserStatus:
                    return((T)Convert.ChangeType(data.ToObject <DuplexNetworkRequest>(), typeof(T)));
                }
            }
            catch (Exception ex)
            {
                //nothing to do. It means prefix is not corresponds to type T
            }

            return(default(T));
        }
Example #2
0
        public void OnRequestRecieved(User user, DuplexNetworkRequestType type, string json)
        {
            var request = TryToGetSpecificRequest <DuplexNetworkRequest>(type, json);

            if (request != null)
            {
                GetStatus(user, null, broadcastResponse: true);
            }
        }
Example #3
0
        private void WebSocketManager_OnRequestRecieved(User user, DuplexNetworkRequestType type, string json)
        {
            var userId   = "";
            var userName = "";

            if (user != null)
            {
                userId   = user.Id;
                userName = user.Username;
            }
            var logFormat = "Websocket onMessage from Id = {0}, name = {1}: {2}";
            var admin     = _clients.FirstOrDefault(s => s.User != null && s.User.Id == EnergoServer.AdminId);

            if (admin != null)
            {
                DirectResponse(admin, string.Format(logFormat, userId, userName, json));
            }

            ServerContext.Current.Logger.Log(LogDestination.Console, LogType.Info, logFormat, userId, userName, json);
        }
 public void Chat_OnMessage(User user, DuplexNetworkRequestType type, string json)
 {
     ReceiveMessage(user, TryToGetSpecificRequest <ChatSendModel>(type, json));
 }