Exemple #1
1
        MsgPair dispatch(string msg, Fleck.IWebSocketConnection clientSock)
        {
            int separateIndex = msg.IndexOf("\r\n");
            if (separateIndex != -1)
            {
                string msgHead = msg.Substring(0, separateIndex);
                int index = msgIndex[msgHead];

                ClientMsgType msgType = (ClientMsgType)index;

                GlobalMessage globalMsg;
               
                if (msgType.Equals(ClientMsgType.LOGIN))
                    globalMsg = GlobalMessage.LOGIN;
                else if (msgType.Equals(ClientMsgType.LOGOUT))
                    globalMsg = GlobalMessage.LOGOUT;
                else if (msgType.Equals(ClientMsgType.KEEPALIVEACK))
                    globalMsg = GlobalMessage.KEEPALIVEACK;
                else
                    globalMsg = GlobalMessage.DATA;
                clientPublishMessage(msg, clientSock, globalMsg);

                string newMsg = ClientMsgDelegate[index](msg, clientSock);
                if (newMsg == null)
                    return null;
                byte[]buffer = addHead(newMsg);

                MsgPair msgPair = new MsgPair(buffer, globalMsg);
                
                return msgPair;
            }
            else
                return null;
        
        }
Exemple #2
0
        public void analyse(string msg, Fleck.IWebSocketConnection clientSock)
        {
            //int totalLen = buffer.Length;
            //int currentIndex = 0;
            //while (currentIndex < totalLen)
            //{
            //    if (verify(buffer) == false)
            //        break;
            //    int DataLength = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(buffer, 8 + currentIndex));
            //    byte[] dataBuffer = new byte[DataLength];
            //    Array.Copy(buffer, 12 + currentIndex, dataBuffer, 0, DataLength);

            //    string msg = System.Text.Encoding.UTF8.GetString(dataBuffer);
            //    MsgPair msgPair = dispatch(msg, clientSock);
            //    currentIndex += DataLength + 12;
            //   // ClientUpdateMessage(byteMessage, clientSock, 2);
            //    if (msgPair != null)
            //    sendMsgToServer(msgPair.msg, clientSock, msgPair.type);
            //}
            if (!verify(msg))
            {
                return;
            }
            msg = msg.Substring(16);
            MsgPair msgPair = dispatch(msg, clientSock);

            if (msgPair != null)
            {
                sendMsgToServer(msgPair.msg, clientSock, msgPair.type);
            }
        }
Exemple #3
0
        //  private long sock;


        public void analyse(byte[] buffer, Socket serverSock)
        {
            int totalLen     = buffer.Length;
            int currentIndex = 0;

            // sock = keyOrValue;
            while (currentIndex < totalLen)
            {
                if (verify(buffer) == false)
                {
                    break;
                }
                int    DataLength = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(buffer, 8 + currentIndex));
                byte[] dataBuffer = new byte[DataLength];
                Array.Copy(buffer, 12 + currentIndex, dataBuffer, 0, DataLength);
                //  string msg = ConvertBytesToString(dataBuffer, dataBuffer.Length);

                string  msg     = System.Text.Encoding.UTF8.GetString(dataBuffer);
                MsgPair msgPair = dispatch(msg, serverSock);

                if (msgPair != null)
                {
                    sendMsgToClient(msgPair.msg, serverSock, msgPair.type);
                }
                currentIndex += DataLength + 12;
            }
        }
Exemple #4
0
        public void analyse(byte[] buffer, Socket clientSock)
        {
            int totalLen     = buffer.Length;
            int currentIndex = 0;

            while (currentIndex < totalLen)
            {
                if (verify(buffer) == false)
                {
                    sendMsgToServer(null, clientSock, GlobalMessage.PACKETERROR);
                    return;
                }
                int    DataLength = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(buffer, 8 + currentIndex));
                byte[] dataBuffer = new byte[DataLength];
                Array.Copy(buffer, 12 + currentIndex, dataBuffer, 0, DataLength);

                string  msg     = System.Text.Encoding.UTF8.GetString(dataBuffer);
                MsgPair msgPair = dispatch(msg, clientSock);
                currentIndex += DataLength + 12;
                // ClientUpdateMessage(byteMessage, clientSock, 2);
                if (msgPair != null)
                {
                    sendMsgToServer(msgPair.msg, clientSock, msgPair.type);
                }
            }
        }
Exemple #5
0
        MsgPair dispatch(string msg, Fleck.IWebSocketConnection clientSock)
        {
            int separateIndex = msg.IndexOf("\r\n");

            if (separateIndex != -1)
            {
                string msgHead = msg.Substring(0, separateIndex);
                int    index   = msgIndex[msgHead];

                ClientMsgType msgType = (ClientMsgType)index;

                GlobalMessage globalMsg;

                if (msgType.Equals(ClientMsgType.LOGIN))
                {
                    globalMsg = GlobalMessage.LOGIN;
                }
                else if (msgType.Equals(ClientMsgType.LOGOUT))
                {
                    globalMsg = GlobalMessage.LOGOUT;
                }
                else if (msgType.Equals(ClientMsgType.KEEPALIVEACK))
                {
                    globalMsg = GlobalMessage.KEEPALIVEACK;
                }
                else
                {
                    globalMsg = GlobalMessage.DATA;
                }
                clientPublishMessage(msg, clientSock, globalMsg);

                string newMsg = ClientMsgDelegate[index](msg, clientSock);
                if (newMsg == null)
                {
                    return(null);
                }
                byte[] buffer = addHead(newMsg);

                MsgPair msgPair = new MsgPair(buffer, globalMsg);

                return(msgPair);
            }
            else
            {
                return(null);
            }
        }
Exemple #6
0
        MsgPair dispatch(string msg, Socket serverSock)
        {
            int separateIndex = msg.IndexOf("\r\n");
            if (separateIndex != -1)
            {
                string msgHead = msg.Substring(0, separateIndex);
                int index = msgIndex[msgHead];
                ServerMsgType msgType = (ServerMsgType)index;

                GlobalMessage globalMsg;
                //if (msgType.Equals(ServerMsgType.LOGINACK))
                //    globalMsg = GlobalMessage.LOGINACK;
                //else if (msgType.Equals(ServerMsgType.LOGOUTACK))
                //    globalMsg = GlobalMessage.LOGOUTACK;
                if (msgType.Equals(ServerMsgType.LOGINACK))
                {
                    string status = TextFollowing(msg, "STATUS:");
                    if (status.Equals("OK"))
                        globalMsg = GlobalMessage.LOGINACKOK;
                    else
                        globalMsg = GlobalMessage.LOGINACKFAILED;
                }
                else if (msgType.Equals(ServerMsgType.LOGOUTACK))
                {
                      string status = TextFollowing(msg, "STATUS:");
                    if (status.Equals("OK"))
                        globalMsg = GlobalMessage.LOGOUTACKOK;
                    else
                        globalMsg = GlobalMessage.LOGOUTACKFAILED;
                }
                else if (msgType.Equals(ServerMsgType.KEEPALIVE))
                    globalMsg = GlobalMessage.KEEPALIVE;
                else
                    globalMsg = GlobalMessage.DATA;
                serverPublishMessage(msg, serverSock, globalMsg);

                string newMsg = ServerMsgDelegate[index](msg, serverSock);
                if (newMsg == null)
                    return null;
                byte[] buffer = addHead(newMsg);

                MsgPair msgPair = new MsgPair(buffer, globalMsg);

                return msgPair;
            }
            else
                return null;

        }
Exemple #7
0
        MsgPair dispatch(string msg, Socket serverSock)
        {
            int separateIndex = msg.IndexOf("\r\n");

            if (separateIndex != -1)
            {
                string        msgHead = msg.Substring(0, separateIndex);
                int           index   = msgIndex[msgHead];
                ServerMsgType msgType = (ServerMsgType)index;

                GlobalMessage globalMsg;
                //if (msgType.Equals(ServerMsgType.LOGINACK))
                //    globalMsg = GlobalMessage.LOGINACK;
                //else if (msgType.Equals(ServerMsgType.LOGOUTACK))
                //    globalMsg = GlobalMessage.LOGOUTACK;
                if (msgType.Equals(ServerMsgType.LOGINACK))
                {
                    string status = TextFollowing(msg, "STATUS:");
                    if (status.Equals("OK"))
                    {
                        globalMsg = GlobalMessage.LOGINACKOK;
                    }
                    else
                    {
                        globalMsg = GlobalMessage.LOGINACKFAILED;
                    }
                }
                else if (msgType.Equals(ServerMsgType.LOGOUTACK))
                {
                    string status = TextFollowing(msg, "STATUS:");
                    if (status.Equals("OK"))
                    {
                        globalMsg = GlobalMessage.LOGOUTACKOK;
                    }
                    else
                    {
                        globalMsg = GlobalMessage.LOGOUTACKFAILED;
                    }
                }
                else if (msgType.Equals(ServerMsgType.KEEPALIVE))
                {
                    globalMsg = GlobalMessage.KEEPALIVE;
                }
                else
                {
                    globalMsg = GlobalMessage.DATA;
                }
                serverPublishMessage(msg, serverSock, globalMsg);

                string newMsg = ServerMsgDelegate[index](msg, serverSock);
                if (newMsg == null)
                {
                    return(null);
                }
                //       byte[] buffer = addHead(newMsg);

                // MsgPair msgPair = new MsgPair(buffer, globalMsg);
                string flagStr = "-1-2-1-2-1-2-1-2";
                string total   = flagStr + newMsg;

                MsgPair msgPair = new MsgPair(total, globalMsg);

                return(msgPair);
            }
            else
            {
                return(null);
            }
        }