node-rdpjs

Remote Desktop Protocol for Node.js

  • 所有者: citronneur/node-rdpjs
  • 平台:
  • 许可证: GNU General Public License v3.0
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

node-rdpjs

Remote Desktop Protocol for Node.js

node-rdpjs is a pure implementation of the Microsoft RDP (Remote Desktop Protocol) protocol (client and server side). node-rdpjs support only SSL security layer.

Install

You can install last release node-rdpjs through npm :

npm install node-rdpjs

Or work with dev branch :

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

RDP Client

To create a simple rdp client :

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);

Client parameters :

  • domain {string} Microsoft domain
  • userName {string} Username
  • password {string} password
  • enablePerf {boolean} Active some performance features (disable wallpaper)
  • autoLogin {boolean} start session if login informations are good
  • decompress {boolean} use RLE algorrithm for decompress bitmap
  • screen {object} screen size
    • width {integer} width of screen
    • height {integer} height of screen
  • locale {string} keyboard layout
    • en qwerty layout
    • fr azerty layout
  • logLevel {string} console log level of library
    • DEBUG
    • INFO
    • WARN
    • ERROR

Use of decompress parameter impact performance.

Client Events

List of all available events from server

connect

Connect event is received when rdp stack is connected

close

Close event is received when rdp stack is close cleanly

error

Error event is received when a protocol error happened

bitmap

Bitmap event is received for a bitmap refresh order :

  • destTop {integer} y min position
  • destLeft {integer} x min position
  • destBottom {integer} y max position
  • destRight {integer} x max position
  • width {integer} width of bitmap data
  • height {integer} height of bitmap data
  • bitsPerPixel {integer} [15, 16, 24, 32] bits per pixel
  • isCompress {boolean} true if bitmap is compressed with RLE algorithm
  • data : {Buffer} bitmap data

Client Inputs

Client inputs are mainly user inputs (mouse and keyboard).

Mouse

client.sendPointerEvent(x, y, button, isPressed);
  • x {integer} mouse x position in pixel
  • y {integer} mouse y position in pixel
  • button {integer} [ 1 (left), 2 (right), 3 (middle) ]
  • isPressed {boolean} true for a pressed button event

Keyboard

client.sendKeyEventScancode(code, isPressed);
  • code {integer} scancode of key
  • isPressed {boolean} true for a key pressed event
client.sendKeyEventUnicode(code, isPressed);
  • code {integer} unicode char of key
  • isPressed {boolean} true for a key pressed event

Project

Please see mstsc.js project page to watch an example of node-rdpjs.

Roadmap

  • Protocol server side
  • NLA Authentication security layer
  • RDP security layer for windows xp compatibility
  • Win32 orders
  • RemoteFX (H.264) codec

主要指标

概览
名称与所有者citronneur/node-rdpjs
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台
许可证GNU General Public License v3.0
所有者活动
创建于2014-11-07 13:34:13
推送于2020-05-07 09:26:27
最后一次提交2017-06-10 15:02:37
发布数5
最新版本名称v0.3.0 (发布于 2016-03-13 14:45:32)
第一版名称v0.1.0 (发布于 2015-07-06 18:17:22)
用户参与
星数0.9k
关注者数38
派生数163
提交数89
已启用问题?
问题数48
打开的问题数32
拉请求数4
打开的拉请求数1
关闭的拉请求数1
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?