远程桌面

服务器端主动下发命令消息到设备端,消息有3种:Remote,Mouse,Key
    Remote消息:服务器下发远程请求消息,消息中包含Url表示需要推流到指定服务地址,Sender表示是谁发起的远程请求
                远程请求示例:
                        {
                            "Type":"Remote",                                // 远程消息:服务器->设备(下行)
                            "Url":"rtmp://118.190.50.151/live/stream",      // 视频推流地址,如果地址为空表示停止远程
                            "Sender":"Administrator",                       // 远程发起人,用户编码
                            "Receiver":"000195"                             // 远程桌面设备的Pid
                       }
                关于设备录屏推流可使用ffmpeg推送桌面流功能:
                        ffmpeg -y -f gdigrab -t 1800 -r 10 -i desktop -f flv rtmp://118.190.50.151/live/stream
                       


                设备接到服务器下发的远程请求后告诉服务器设备的基本信息:设备名称,屏宽高点数
                远程开始示例:
                        {
                            "Type":"Remote",                // 远程消息:设备->服务器(上行)
                            "Pid":"000195",                 // 设备Pid
                            "Name":"建行电视测试机",        // 设备名称
                            "Width":1920,                   // 设备屏宽点数
                            "Height":1080,                  // 设备屏高点数
                            "Sender":"000195",              // 远程桌面设备的Pid,在此变成消息发送者      /*** 注意 ***/
                            "Receiver":"Administrator"      // 远程发起人,用户编码,在此变成消息接收者
                        }
                远程结束示例:
                        {
                            "Type":"Remote",                // 远程消息:服务器->设备(下行)
                            "Url":""                        // Url空,表示停止当前远程
                            "Sender":"Administrator",       // 远程发起人,用户编码
                            "Receiver":"000195"             // 远程桌面设备的Pid
                        }

    Mouse消息:当设备接到鼠标消息,就执行对应的鼠标动作
                鼠标移动示例:
                    {
                        "Type":"Mouse",                     // 远程鼠标消息:服务器->设备(下行)
                        "X":123,                            // 鼠标所在X坐标值
                        "Y":456,                            // 鼠标所在Y坐标值
                        "Button":"",                        // 鼠标按键:空表示没有
                        "ButtonState":"",                   // 鼠标按键状态:空没有没有
                        "Sender":"Administrator",           // 远程发起人,用户编码
                        "Receiver":"000195"                 // 远程桌面设备的Pid
                    }
                鼠标左键按下示例:
                    {
                        "Type":"Mouse",                     // 远程鼠标消息:服务器->设备(下行)
                        "X":123,                            // 鼠标所在X坐标值
                        "Y":456,                            // 鼠标所在Y坐标值
                        "Button":"Left",                    // 鼠标按键:空表示没有,Left-左键,Right右键
                        "ButtonState":"Pressed",            // 鼠标按键状态:空没有没有,Pressed-按下,Released-松开
                        "Sender":"Administrator",           // 远程发起人,用户编码
                        "Receiver":"000195"                 // 远程桌面设备的Pid
                    }
                鼠标右键松开示例:
                    {
                        "Type":"Mouse",                     // 远程鼠标消息:服务器->设备(下行)
                        "X":123,                            // 鼠标所在X坐标值
                        "Y":456,                            // 鼠标所在Y坐标值
                        "Button":"Right",                   // 鼠标按键:空表示没有,Left-左键,Right右键
                        "ButtonState":"Released",           // 鼠标按键状态:空没有没有,Pressed-按下,Released-松开
                        "Sender":"Administrator",           // 远程发起人,用户编码
                        "Receiver":"000195"                 // 远程桌面设备的Pid
                    }
    Key消息:当设备接到键盘消息,就执行对应的键盘动作
                键盘按下示例:
                    {
                        "Type":"Key",                       // 远程按键消息:服务器->设备(下行)
                        "Key":65,                           // 按键值:65-表示A,66表示B,可百度,可参考:https://blog.csdn.net/KIG_cat/article/details/50676885
                        "KeyState":"Down"                   // 按键状态:Down表示按下,Up表示松开
                        "Sender":"Administrator",           // 远程发起人,用户编码
                        "Receiver":"000195"                 // 远程桌面设备的Pid
                    }