#1620 closed enhancement (fixed)
rfb server support
Reported by: | Antoine Martin | Owned by: | J. Max Mena |
---|---|---|---|
Priority: | major | Milestone: | 2.2 |
Component: | server | Version: | trunk |
Keywords: | Cc: |
Description
Implementing a bare bones RFB server turned out to be trivial since the protocol is so simple (unlike xpra, no windows or metadata to deal with!): rfc6143.
This may be useful for comparing with VNC clients, debugging the vfb state, etc
TODO before the next release (minimum required for secure usage):
- bug: screen updates are always one frame behind
- authentication step (support at least
VncAuth
) - move code to an rfb support module and also support rfb in shadow servers
- honour server sharing options, fix source missing attributes (uuid, etc)
- verify control channel commands, etc (anything that might dereference missing source attributes)
Extras (probably for a later milestone):
- SSL support (should be trivial)
- refactor rfb protocol code into a common superclass with regular xpra protocol (packet accounting, threads, close, etc)
- more encodings than just plain RGB (ie: copyrect for scrolling, jpeg)
- clipboard support
- support colormap modes? (8 / 16 bit)
- desktop-size pseudo encoding (randr like)
- maybe add a default port for bind-rfb (5900 + DISPLAY)
- support older protocols
To use it:
xpra start-desktop :100 --start=xterm --bind-rfb=0.0.0.0:5900 -d rfb vncviewer 127.0.0.1:0 -Log "*:stderr:100"
Change History (7)
comment:1 Changed 4 years ago by
Status: | new → assigned |
---|
comment:3 Changed 4 years ago by
Owner: | changed from Antoine Martin to J. Max Mena |
---|---|
Status: | assigned → new |
Should be fully usable as of r16784 (see commit message).
This is useful for testing, but will need work before being able to compete with other RFB servers (#1632).
@maxmylyn: this is just a FYI, feel free to close.
It does support authentication and sharing options, ie:
echo -n 01234567 > password.txt xpra start-desktop :100 --start=xterm --sharing=yes \ --bind-tcp=0.0.0.0: \ --bind-rfb=0.0.0.0: --rfb-auth=file,filename=./password.txt --no-daemon
You can then connect with vncviewer:
echo -n 01234567 | vncpasswd -f > password.vnc vncviewer 127.0.0.1:0 -Log "*:stderr:100" -Shared=1 -passwd=./password.vnc
And since sharing is enabled, you can connect an xpra client simultaneously:
xpra attach tcp:localhost
comment:5 Changed 4 years ago by
As usual, this required a bunch of platform tweaks and fixes:
- better keycode support: r16785, with macos and win32 servers support: r16789
- shadow servers needed to be told to start refreshing: r16786
- handle win32 sockets timeouts: r16787
- mouse button handler method signature requires position on win32: r16788
- platform import fixes, macos doesn't have X11: r16790, r16791
- macos shadow server fixes: r16792, r16794
- TCP sockets can be "upgraded" to RFB after a timeout: r16836
It would be nice to add support for bandwidth-limit
(#417)
comment:7 Changed 3 months ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1620
Code added in r16673, see also #639.
Better links: