node-rdpjs, 用于 node.js的远程桌面协议

分享于 

4分钟阅读

GitHub

  繁體 雙語
Remote Desktop Protocol for Node.js
  • 源代码名称:node-rdpjs
  • 源代码网址:http://www.github.com/citronneur/node-rdpjs
  • node-rdpjs源代码文档
  • node-rdpjs源代码下载
  • Git URL:
    git://www.github.com/citronneur/node-rdpjs.git
    Git Clone代码到本地:
    git clone http://www.github.com/citronneur/node-rdpjs
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/citronneur/node-rdpjs
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    节点 rdpjs

    用于 Node.js的远程桌面协议

    node-rdpjs是 Microsoft ( 远程桌面协议) 协议( 客户端和服务器端)的纯实现。 节点rdpjs仅支持SSL安全层。

    安装

    你可以通过npm安装最后一个发行版节点 rdpjs:

    
    npm install node-rdpjs
    
    
    
    

    或者与dev分支一起工作:

    
    git clone https://github.com/citronneur/node-rdpjs.git
    
    
    cd node-rdpjs
    
    
    npm install
    
    
    
    

    客户端RDP客户端

    若要创建简单的rdp客户端,请执行下列操作:

    var rdp =require('node-rdpjs');var client =rdp.createClient({ 
     domain :'my_domain', 
     userName :'my_username',
     password :'my_password',
     enablePerf :true,
     autoLogin :true,
     decompress :false,
     screen: { width :800, height :600 },
     locale :'en',
     logLevel :'INFO'}).on('connect', function () {
    }).on('close', function() {
    }).on('bitmap', function(bitmap) {
    }).on('error', function(err) {
    }).connect('XXX.XXX.XXX.XXX', 3389);

    客户端参数:

    • 域 {string} 域
    • 用户名 {string} 用户名
    • 密码 {string} 密码
    • enablePerf {boolean} 激活某些性能功能( 禁用墙纸)
    • 登录 {boolean} 启动会话如果登录信息很好
    • 解压 {boolean} 使用 RLE algorrithm解压位图
    • 屏幕 {object} 屏幕大小
      • 宽度 {integer} 屏幕宽度
      • 屏幕高度 {integer} 高度
    • 语言环境 {string} 键盘布局
      • 基于键盘的布局
      • fr azerty布局
    • logLevel {string} 控制台日志级别库
      • 调试
      • 信息
      • 警告
      • 错误

    解压缩参数影响性能的使用。

    客户端事件

    服务器中所有可用事件的列表

    连接

    连接rdp堆栈时接收到连接事件

    关闭

    rdp堆栈正常关闭时接收Close事件

    错误

    发生协议错误时接收到错误事件

    位图

    位图刷新顺序接收位图事件:

    • destTop {integer} y 最小位置
    • destLeft {integer} x 最小位置
    • destBottom {integer} y 位置
    • destRight {integer} x 最大位置
    • 宽度 {integer} 位图数据宽度
    • 高度 {integer} 位图数据高度
    • 每个像素的bitsPerPixel {integer} [15|16|24|32] 位
    • isCompress {boolean} true 如果使用RLE算法压缩位图
    • 数据:{Buffer} 位图数据

    客户端输入

    客户端输入主要是用户输入( 鼠标和键盘)。

    鼠标
    client.sendPointerEvent(x, y, button, isPressed);
    • x {integer} 鼠标在像素中的位置
    • y {integer} 鼠标在像素中的位置
    • 按钮 {integer} [ 1 (left) | 2 (right) | 3 (middle) ]
    • 按下按钮事件的isPressed {boolean} true
    键盘
    client.sendKeyEventScancode(code, isPressed);
    • 密钥 {integer} scancode
    • 按下键的isPressed {boolean} true
    client.sendKeyEventUnicode(code, isPressed);
    • 代码 {integer}的unicode字符字符
    • 按下键的isPressed {boolean} true

    项目

    请查看 mstsc.js 项目页面,以查看节点rdpjs示例。

    路线图

    • 协议服务器端
    • NLA身份验证安全层
    • RDP安全层用于 Windows xp兼容性
    • WIN32 订单
    • RemoteFX ( h.264 ) 编解码器

    相关文章