Exemple #1
0
 private void SendIntern(MessageV04 msg)
 {
     if (_ws != null && _ws.ReadyState == WebSocketState.Open)
     {
         _ws.Send(msg.ToString());
     }
 }
        public static MessageV04 Parse(string msg)
        {
            if (msg == null || msg.Length < 2)
            {
                return(Null);
            }
            MessageV04 m   = Null;
            Cmd        cmd = (Cmd)msg[0];
            long       mid = 0;
            int        pos = 1;

            if (msg[pos] != ' ')
            {
                if (msg.Length < 5)
                {
#if DEBUG
                    Log.Warning("MessageV04({0}) - MId is too short", msg);
#endif
                    return(Null);
                }
                int j;
                for (; pos < 5; pos++)
                {
                    j = AB.IndexOf(msg[pos]);
                    if (j < 0)
                    {
#if DEBUG
                        Log.Warning("MessageV04({0}) - bad char in MId", msg);
#endif
                        return(Null);
                    }
                    mid = (mid * 64) + j;
                }
            }
            else
            {
                pos++;
            }
            string[] payload;
            if (msg.Length > pos)
            {
                payload = msg.Substring(pos).Split('\x1E');
            }
            else
            {
                payload = null;
            }
            m = new MessageV04(cmd, mid, payload);

            return(m);
        }
Exemple #3
0
        private void _ws_OnMessage(object sender, MessageEventArgs e)
        {
            MessageV04 msg;

            if (e.Type == Opcode.Text)
            {
                msg = MessageV04.Parse(e.Data);
            }
            else
            {
                return;
            }
            switch (msg.cmd)
            {
            case MessageV04.Cmd.Info:
                SendIntern(new MessageV04(MessageV04.Cmd.Connect, GenMsgId(), "user", "pass"));
                break;
            }
        }
 static MessageV04()
 {
     Null = new MessageV04(Cmd.Empty, 0, null);
 }