Hi Alex,
On Mi 21 Apr 2021 22:43:53 CEST, Oleksandr Shneyder wrote:
I am currently trying to provide an out-of-the-box DEB installation of
x2gohtmlclient. For this, I need to make some adjustments, mainly
these are about wss: traffic becoming optional and defaulting
everything to localhost with ws: protocol. Of course, in real world
deployments, this needs to SSL'ified again. But I'd really love to
provide DEBs that demo x2gohtmlclient out-of-the-box (and SSL
certificates are not so much things that come out of the box).
This all seems to work fine, only that I get a failure when
x2goclient.min.js starts communicating with the x2gokdrive Xserver
(via x2gowswrapper, via websockify).
I think that my seen bug is caused by my websockify 0.9 which has the
text data mode removed (compared to earlier versions). See:
https://github.com/novnc/websockify/issues/365#issuecomment-432270758
As I am testing everything on Debian 11, I indeed have websockify 0.9
installed. Where did you test the whole stack of x2gohtmlclient,
x2goclient.min.js, x2gowebrpc and x2gowswrapper on? Debian 10, maybe?
My symptom in the browser is:
The (error) message(s) I get in the browser console while this happens
are/is these/this:
WS Open Event {isTrusted: true, type: "open", target: WebSocket,
currentTarget: WebSocket, eventPhase: 2, …}
x2goclient.min.js:208 Sending geometry event: ArrayBuffer(41)
Uint32Array(5) [7, 60294400, 0, 0, 0] Uint16Array(5) [7, 0, 1280, 920,
0]
x2goclient.min.js:204 Sending client Version and OS:
ArrayBuffer(41)byteLength: (...)__proto__: ArrayBuffer[[Int8Array]]:
Int8Array(41)[[Uint8Array]]: Uint8Array(41)[[ArrayBufferByteLength]]:
41[[ArrayBufferData]]: "0x0fc800a0c030" Uint32Array(5) [10, 196612, 0,
0, 0]0: 101: 1966122: 03: 04: 0buffer: (...)byteLength:
(...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag):
(...)__proto__: TypedArray Uint16Array(5) [10, 0, 4, 3, 0]0: 101: 02:
43: 34: 0buffer: (...)byteLength: (...)byteOffset: (...)length:
(...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray
x2goclient.min.js:265 WS Close CloseEvent {isTrusted: true, wasClean:
true, code: 1003, reason: "Unsupported: Text frames are not
supported", type: "close", …}
Before I dig any deeper, could you try your test setups with
websockify 0.9 and report back if you see a similar error popping up
or not?
DAS-NETZWERKTEAM c\o Technik- und Ökologiezentrum Eckernförde Mike Gabriel, Marienthaler Str. 17, 24340 Eckernförde mobile: +49 (1520) 1976 148 landline: +49 (4351) 850 8940
GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
Hi Mike,
I'm using at the moment HTML Client on Debian 10, RH-7, Cent-OS7. I'll try to upgrade my development system to Bullseye and will let you know how it works. I never tried this setup without using SSL and I can imagine that there's could be some security restrictions in browser, which makes it impossible. Anyway, I'm going to try it and will come back to you.
regards, Alex
PS: Don't think the reason is the text mode, because client opens socket in binary mode. Anyway, I will get rid of websockify and put the ws support into x2gowswrapper code
Am 21.06.21 um 10:13 schrieb Mike Gabriel:
Hi Alex,
On Mi 21 Apr 2021 22:43:53 CEST, Oleksandr Shneyder wrote:
I am currently trying to provide an out-of-the-box DEB installation of x2gohtmlclient. For this, I need to make some adjustments, mainly these are about wss: traffic becoming optional and defaulting everything to localhost with ws: protocol. Of course, in real world deployments, this needs to SSL'ified again. But I'd really love to provide DEBs that demo x2gohtmlclient out-of-the-box (and SSL certificates are not so much things that come out of the box).
This all seems to work fine, only that I get a failure when x2goclient.min.js starts communicating with the x2gokdrive Xserver (via x2gowswrapper, via websockify).
I think that my seen bug is caused by my websockify 0.9 which has the text data mode removed (compared to earlier versions). See: https://github.com/novnc/websockify/issues/365#issuecomment-432270758
As I am testing everything on Debian 11, I indeed have websockify 0.9 installed. Where did you test the whole stack of x2gohtmlclient, x2goclient.min.js, x2gowebrpc and x2gowswrapper on? Debian 10, maybe?
My symptom in the browser is:
- Logon works - X2Go KDrive sessions starts in the background (processes come up, desktop is resumable via native X2Go Client later on) - X2Go Logo appears in the placeholder area in the webbrowser - X2Go session strings is shown at the top of the session window in the browser - and then, the session is immediately closed again.
The (error) message(s) I get in the browser console while this happens are/is these/this:
WS Open Event {isTrusted: true, type: "open", target: WebSocket, currentTarget: WebSocket, eventPhase: 2, …} x2goclient.min.js:208 Sending geometry event: ArrayBuffer(41) Uint32Array(5) [7, 60294400, 0, 0, 0] Uint16Array(5) [7, 0, 1280, 920, 0] x2goclient.min.js:204 Sending client Version and OS: ArrayBuffer(41)byteLength: (...)__proto__: ArrayBuffer[[Int8Array]]: Int8Array(41)[[Uint8Array]]: Uint8Array(41)[[ArrayBufferByteLength]]: 41[[ArrayBufferData]]: "0x0fc800a0c030" Uint32Array(5) [10, 196612, 0, 0, 0]0: 101: 1966122: 03: 04: 0buffer: (...)byteLength: (...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray Uint16Array(5) [10, 0, 4, 3, 0]0: 101: 02: 43: 34: 0buffer: (...)byteLength: (...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray x2goclient.min.js:265 WS Close CloseEvent {isTrusted: true, wasClean: true, code: 1003, reason: "Unsupported: Text frames are not supported", type: "close", …}
Before I dig any deeper, could you try your test setups with websockify 0.9 and report back if you see a similar error popping up or not?
Thanks, Mike
Oleksandr Shneyder | Email: o.shneyder@phoca-gmbh.de phoca GmbH | Tel. : 0911 - 14870374 0 Schleiermacherstr. 2 | Fax. : 0911 - 14870374 9 D-90491 Nürnberg | Mobil: 0163 - 49 64 461
Geschäftsführung: Dipl.-Inf. Oleksandr Shneyder
Hi Alex,
On Mo 21 Jun 2021 17:49:08 CEST, Oleksandr Shneyder wrote:
Hi Mike,
I'm using at the moment HTML Client on Debian 10, RH-7, Cent-OS7. I'll try to upgrade my development system to Bullseye and will let you know how it works.
Thanks.
I never tried this setup without using SSL and I can imagine that there's could be some security restrictions in browser, which makes it impossible. Anyway, I'm going to try it and will come back to you.
Yeah, the browser might cause this, too, I also thought about this. I
will check with another setup where I can deploy Let's Encrypt certs
on a real webserver.
regards, Alex
PS: Don't think the reason is the text mode, because client opens socket in binary mode. Anyway, I will get rid of websockify and put the ws support into x2gowswrapper code
Yep, saw that. So I was wondering, what throws up here.
Thanks for taking a look, Mike
--
DAS-NETZWERKTEAM c\o Technik- und Ökologiezentrum Eckernförde Mike Gabriel, Marienthaler Str. 17, 24340 Eckernförde mobile: +49 (1520) 1976 148 landline: +49 (4351) 850 8940
GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
Hi Mike,
you don't need to have let's encrypt certificate or any valid certificate to do the testing or make the setup work. The simple self signed certificate will do it just fine. Just add security exception in your browser when you'll connect to plugin page.
regards, Alex
Am 21.06.21 um 10:57 schrieb Mike Gabriel:
Hi Alex,
On Mo 21 Jun 2021 17:49:08 CEST, Oleksandr Shneyder wrote:
Hi Mike,
I'm using at the moment HTML Client on Debian 10, RH-7, Cent-OS7. I'll try to upgrade my development system to Bullseye and will let you know how it works.
Thanks.
I never tried this setup without using SSL and I can imagine that there's could be some security restrictions in browser, which makes it impossible. Anyway, I'm going to try it and will come back to you.
Yeah, the browser might cause this, too, I also thought about this. I will check with another setup where I can deploy Let's Encrypt certs on a real webserver.
regards, Alex
PS: Don't think the reason is the text mode, because client opens socket in binary mode. Anyway, I will get rid of websockify and put the ws support into x2gowswrapper code
Yep, saw that. So I was wondering, what throws up here.
Thanks for taking a look, Mike
Oleksandr Shneyder | Email: o.shneyder@phoca-gmbh.de phoca GmbH | Tel. : 0911 - 14870374 0 Schleiermacherstr. 2 | Fax. : 0911 - 14870374 9 D-90491 Nürnberg | Mobil: 0163 - 49 64 461
Geschäftsführung: Dipl.-Inf. Oleksandr Shneyder
Hi Mike,
I upgraded my dev system to Bullseye and figured out what was the problem. The new version of websockify was not accepting the kdrive cookie as JS string, I modified the html client to send it as an array of bytes instead. I also made some minor improvements in parsing of JSON object in RPC and Client parts. With this modifications the HTML Client is working on my Debian 11 system (still with SSL support).
regards, Alex
Am 21.06.21 um 10:57 schrieb Mike Gabriel:
Hi Alex,
On Mo 21 Jun 2021 17:49:08 CEST, Oleksandr Shneyder wrote:
Hi Mike,
I'm using at the moment HTML Client on Debian 10, RH-7, Cent-OS7. I'll try to upgrade my development system to Bullseye and will let you know how it works.
Thanks.
I never tried this setup without using SSL and I can imagine that there's could be some security restrictions in browser, which makes it impossible. Anyway, I'm going to try it and will come back to you.
Yeah, the browser might cause this, too, I also thought about this. I will check with another setup where I can deploy Let's Encrypt certs on a real webserver.
regards, Alex
PS: Don't think the reason is the text mode, because client opens socket in binary mode. Anyway, I will get rid of websockify and put the ws support into x2gowswrapper code
Yep, saw that. So I was wondering, what throws up here.
Thanks for taking a look, Mike
Oleksandr Shneyder | Email: o.shneyder@phoca-gmbh.de phoca GmbH | Tel. : 0911 - 14870374 0 Schleiermacherstr. 2 | Fax. : 0911 - 14870374 9 D-90491 Nürnberg | Mobil: 0163 - 49 64 461
Geschäftsführung: Dipl.-Inf. Oleksandr Shneyder
Hi Alex,
On Di 22 Jun 2021 01:40:41 CEST, Oleksandr Shneyder wrote:
Am 21.06.21 um 10:57 schrieb Mike Gabriel:
Hi Alex,
On Mo 21 Jun 2021 17:49:08 CEST, Oleksandr Shneyder wrote:
Hi Mike,
I'm using at the moment HTML Client on Debian 10, RH-7, Cent-OS7. I'll try to upgrade my development system to Bullseye and will let you know how it works.
Thanks.
I never tried this setup without using SSL and I can imagine that there's could be some security restrictions in browser, which makes it impossible. Anyway, I'm going to try it and will come back to you.
Yeah, the browser might cause this, too, I also thought about this. I will check with another setup where I can deploy Let's Encrypt certs on a real webserver.
regards, Alex
PS: Don't think the reason is the text mode, because client opens socket in binary mode. Anyway, I will get rid of websockify and put the ws support into x2gowswrapper code
Yep, saw that. So I was wondering, what throws up here.
Thanks for taking a look, Mike
Hi Mike,
I upgraded my dev system to Bullseye and figured out what was the problem. The new version of websockify was not accepting the kdrive cookie as JS string, I modified the html client to send it as an array of bytes instead. I also made some minor improvements in parsing of JSON object in RPC and Client parts. With this modifications the HTML Client is working on my Debian 11 system (still with SSL support).
regards, Alex
Very cool. Thanks for the prompt fix up. Will take a look this afternoon.
DAS-NETZWERKTEAM c\o Technik- und Ökologiezentrum Eckernförde Mike Gabriel, Marienthaler Str. 17, 24340 Eckernförde mobile: +49 (1520) 1976 148 landline: +49 (4351) 850 8940
GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de