SocketIOClient.Messages.EventMessage.Deserialize C# (CSharp) Method

Deserialize() public static method

public static Deserialize ( string rawMessage ) : EventMessage
rawMessage string
return EventMessage
        public static EventMessage Deserialize(string rawMessage)
        {
            EventMessage evtMsg = new EventMessage();
            //  '5:' [message id ('+')] ':' [message endpoint] ':' [json encoded event]
            //   5:1::{"a":"b"}
            evtMsg.RawMessage = rawMessage;
            try
            {
                string[] args = rawMessage.Split(SPLITCHARS, 4); // limit the number of pieces
                if (args.Length == 4)
                {
                    int id;
                    if (int.TryParse(args[1], out id))
                        evtMsg.AckId = id;
                    evtMsg.Endpoint = args[2];
                    evtMsg.MessageText = args[3];

                    if (!string.IsNullOrEmpty(evtMsg.MessageText) &&
                        evtMsg.MessageText.Contains("name") &&
                        evtMsg.MessageText.Contains("args"))
                    {
                        evtMsg.Json = JsonEncodedEventMessage.Deserialize(evtMsg.MessageText);
                        evtMsg.Event = evtMsg.Json.name;
                    }
                    else
                        evtMsg.Json = new JsonEncodedEventMessage();
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
            }
            return evtMsg;
        }

Usage Example

Example #1
0
        public static IMessage Factory(string rawMessage)
        {
            if (reMessageType.IsMatch(rawMessage))
            {
                char id = rawMessage.First();
                switch (id)
                {
                case '0':
                    return(DisconnectMessage.Deserialize(rawMessage));

                case '1':
                    return(ConnectMessage.Deserialize(rawMessage));

                case '2':
                    return(new Heartbeat());

                case '3':
                    return(TextMessage.Deserialize(rawMessage));

                case '4':
                    return(JSONMessage.Deserialize(rawMessage));

                case '5':
                    return(EventMessage.Deserialize(rawMessage));

                case '6':
                    return(AckMessage.Deserialize(rawMessage));

                case '7':
                    return(ErrorMessage.Deserialize(rawMessage));

                case '8':
                    return(new NoopMessage());

                default:
                    Trace.WriteLine(string.Format("Message.Factory undetermined message: {0}", rawMessage));
                    return(new TextMessage());
                }
            }
            else
            {
                Trace.WriteLine(string.Format("Message.Factory did not find matching message type: {0}", rawMessage));
                return(new NoopMessage());
            }
        }
All Usage Examples Of SocketIOClient.Messages.EventMessage::Deserialize