xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.

Opened 5 years ago

Closed 5 years ago

Last modified 12 months ago

#1271 closed enhancement (fixed)

support websockets in the python client

Reported by: Antoine Martin Owned by: alas
Priority: minor Milestone: 1.0
Component: client Version: trunk
Keywords: Cc:


We already support websockets as transport in the server, see #1136 / #1134, so we could support websockets in the python client as well. (we already have ssh, ssl, tcp and unix / named-pipes!)

I don't see the point of adding this one: we try hard to avoid copying data in the network layer and using websockets will cause more of it, using more CPU.

Change History (7)

comment:1 Changed 5 years ago by Antoine Martin

Status: newassigned

Found: https://github.com/liris/websocket-client which supports python 2.
This may help with things like #1298.

comment:2 Changed 5 years ago by Antoine Martin

Milestone: future1.0

Implemented basic support in r13558, hoping this will help debug #1298.
You can now connect using a websocket transport:

xpra attach ws/

Looking at the traffic, it's not pretty: redundant size headers, etc... #1134 may help a bit here, but ultimately this transport is very unlikely to ever perform as well as the plain xpra protocol it wraps.

Still TODO:

  • man page updates (maybe revamp the whole display connection string to avoid copying the same information everywhere)
  • support parameters on the URL
  • maybe expose the underlying TCP socket's details via get_info
  • hook ssl options
Last edited 5 years ago by Antoine Martin (previous) (diff)

comment:3 Changed 5 years ago by Antoine Martin

Minor updates:

  • r13559: added to osx moduleset
  • r13560: connection closed handling, extra socket info
  • r13562: we can now use this connection string syntax: ws[s]/username:password@host:port/path?arg=val&etc

comment:4 Changed 5 years ago by Antoine Martin

Owner: changed from Antoine Martin to alas
Status: assignednew
  • r13594: man page updates
  • r13596 seems to allow us to use SSL connections (blocked by #1213), ie with a server configured with a self-signed CA as per wiki/Encryption/SSL:
    xpra attach wss: --ssl-ca-cert=./ca.crt

(successfully establishes the SSL connection to the server but then fails because of the issue in ticket:1213#comment:3)

Excluding the wss issue above, this is ready for testing. See also #1213
@afarr: you should be able to use ws URL connection strings with the latest clients.
This is useful for testing the same transport layer used by the html5 client.

Last edited 5 years ago by Antoine Martin (previous) (diff)

comment:5 Changed 5 years ago by alas

Resolution: fixed
Status: newclosed

Tested the permutations with 1.0.6 r15627 osx client (10.12) against a 1.0.7 r16032 fedora 25 server.

Each permutation worked without so much as a wrinkle. Good to know the clients will work over the same transport layer.


comment:6 Changed 3 years ago by Antoine Martin

See also #2121

comment:7 Changed 12 months ago by migration script

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1271

Note: See TracTickets for help on using tickets.