Exemplo n.º 1
0
 /// <summary>
 /// 鼠标移动事件
 /// </summary>
 /// <param name="x"></param>
 /// <param name="y"></param>
 public void SendMouseMove(int type, int x, int y, int dw, int info)
 {
     if (IsSession && Status == 2)
     {
         MqttClient?.Request(OtherCommidStr, Package_0x06(type, x, y, dw, info));
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// 设置压缩率
 /// </summary>
 /// <param name="flag"></param>
 /// <param name="level"></param>
 public void SetCompressLevel(bool flag, int level)
 {
     if (IsSession && Status == 2)
     {
         MqttClient?.Request(OtherCommidStr, Package_0x03(flag, level));
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 发送远程按键
 /// </summary>
 /// <param name="key"></param>
 /// <param name="flag"></param>
 public void SendKey(byte key, byte flag)
 {
     if (IsSession && Status == 2)
     {
         MqttClient?.Request(OtherCommidStr, Package_0x05(key, flag));
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 退出会话
 /// </summary>
 public void SessionClose()
 {
     if (IsSession && Status == 2)
     {
         MqttClient?.Request(OtherCommidStr, Package_0x04());
         Status    = 0;
         IsSession = false;
     }
 }
Exemplo n.º 5
0
 /// <summary>
 /// 发起请求
 /// </summary>
 /// <param name="pwd"></param>
 public void Conn(string pwd)
 {
     MqttClient?.Request(OtherCommidStr, Package_0x07(pwd));
 }
Exemplo n.º 6
0
 /// <summary>
 /// 查询服务器在线状态
 /// </summary>
 /// <param name="otherid"></param>
 public void Check(uint otherid)
 {
     MqttClient?.Request(Package_0x01(otherid.GetBytes()));
     OtherCommid    = otherid.GetBytes();
     OtherCommidStr = otherid.ToString();
 }
Exemplo n.º 7
0
        private void MqttClient_RcvDataEvent(byte[] data)
        {
            try
            {
                if (data?.Length > 0)
                {
                    switch (data[0])
                    {
                    case 0x00:
                        if (CommID.ToHexString() != data.SubArray(1, 4).ToHexString())
                        {
                            MqttClient.Unsubscribe(CommID.GetInt().ToString());
                            MqttClient.Subscribe(data.SubArray(1, 4).GetInt().ToString());
                        }
                        CommID   = data.SubArray(1, 4);
                        Password = data.SubArray(6, data[5]).ToASCIIString();
                        break;

                    case 0x01:
                        SelectServerEvent?.BeginInvoke(data[1], null, null);
                        break;

                    case 0x02:
                        RcvImageEvent?.BeginInvoke(data.SubArray(1, data.Length - 1).Bytes2BitMap(), null, null);
                        break;

                    case 0x03:
                        IsCompression    = data[1] == 1;
                        CompressionLevel = data[2];
                        break;

                    case 0x04:
                        IsSession = false;
                        Status    = 0;
                        break;

                    case 0x05:
                        RcvKeyEvent?.BeginInvoke(data[1], data[2], null, null);
                        break;

                    case 0x06:
                        int type = (data[1] << 8) | data[2];
                        int x    = (data[3] << 8) | data[4];
                        int y    = (data[5] << 8) | data[6];
                        int dw   = (data[7] << 24) | (data[8] << 16) | (data[9] << 8) | data[10];
                        int info = (data[11] << 24) | (data[12] << 16) | (data[13] << 8) | data[14];

                        MouseMoveEvent?.BeginInvoke(type, x, y, dw, info, null, null);
                        break;

                    case 0x07:
                        if (data.Length > 2)
                        {
                            string pwd = data.SubArray(6, data[5]).ToASCIIString();
                            OtherCommid    = data.SubArray(1, 4);
                            OtherCommidStr = OtherCommid.GetInt().ToString();
                            if (pwd == Password)
                            {
                                MqttClient?.Request(OtherCommidStr, new byte[] { 0x07, 0x00 });
                                IsSession = true;
                                Status    = 1;
                                Conn1Event?.BeginInvoke(null, null);
                            }
                            else
                            {
                                MqttClient?.Request(OtherCommidStr, new byte[] { 0x07, 0x01 });
                            }
                        }
                        else
                        {
                            if (data[1] == 0x00)
                            {
                                Status    = 2;
                                IsSession = true;
                            }
                            Conn2Event?.Invoke(data[1]);
                        }
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + "****" + ex.StackTrace);
            }
        }