poVoq / conversejs-ubports

ConverseJS based XMPP client for Ubuntu-Touch mobile devices
GNU General Public License v3.0
2 stars 0 forks source link

Server connection issue on PinePhone UBports #9

Open Niubbo opened 4 years ago

Niubbo commented 4 years ago

When i try to connect to my blabber.im account on my ubports pinephone it just hang on connection and the weel keep spinning without any response I hope you can fix it asap because it's the only xmpp client available for this phone Thanks

poVoq commented 4 years ago

What did you fill in for the websocket or BOSH address? It is a required setting (as XEP-0156 isn't actually working yet).

I had a quick look and it seems like wss://blabber.im/ws/ Might work for the websocket.

boroli commented 4 years ago

Same problem here. The websocket doesn't seem to work, but I could sign in with the BOSH URL:

https://blabber.im/http-bind

Why is that needed for the Web App at all, when I can sign in at https://m.conversejs.org/fullscreen.html just in the normal way?Just curious, as some xmpp servers doesn't provide their BOSH or websocket URL's at all.

poVoq commented 4 years ago

The ConverseJS test instance uses a proxy server called Punjab that handles the BOSH connection. Besides Punjab being more or less unmaintained and lacking some features, it is obviously also not ideal from a privacy perspective to intercept the communication of all users like that.

poVoq commented 3 years ago

I tested this a bit further, most likely this is an issue with the CORS setting of that xmpp server.

It is a bit uncommon to allow XMPP web-clients to connect from external domains. But as this app loads all the resources from your local device storage it appears as if coming from a foreign domain for the BOSH server it connects to.

Sadly this can not be fixed I think.

If you self-host the XMPP server it is easy to configure.

aryoda commented 3 years ago

Same issue on an Volla Phone with OTA-18 using autologin.

It would be great to have a "cancel" button (+ the possibility disable autologin again if it fails)

poVoq commented 3 years ago

It would be great to have a "cancel" button (+ the possibility disable autologin again if it fails)

Yes would be great, sadly it is really complicated to do due to the way ConverseJS works.

Can you confirm if your XMPP server has CORS enabled?

I am planning to make a new version based on ConverseJS 8.x soon, but as my xmpp server needs some renovations I have to fix that first as currently I can't test it properly with ConverseJS 8.x.

aryoda commented 3 years ago

I guess CORS is not enabled on the server I have used for testing:

https://compliance.conversations.im/server/jabb3r.org/

Only "XEP-0363: HTTP File Upload (CORS Headers)" supports CORS.

Which XEP spec number must I look for exactly to find out if CORS suffice for using ConverseJS?

Edit: The XMPP protocol specs ("XEP") are documented here: https://xmpp.org/extensions/

Or would it be possible to publish a list of known working XMPP servers here?

poVoq commented 3 years ago

It's part of the BOSH one.

jabb3r.org is part of https://jabber.hot-chilli.net/

try: https://jabber.hot-chilli.net/http-bind

or

wss://jabber.hot-chilli.net:5281/xmpp-websocket

As the server connection.

aryoda commented 3 years ago

YES, it works now if I specify both URLs in ConverseJS as servers in this order:

wss://jabber.hot-chilli.net:5281/xmpp-websocket https://jabber.hot-chilli.net/http-bind

Thanks for your help! I also saw similar information in the App description later but is is difficult to get these URLs from the server web sites.

Perhaps it would be nice to store a list of well-known URLs for each host (which can be derived from the XMPP ID) and fill them in as suggestion in the start dialog

Edit: The login works but the following screen does freeze then (I can see that I am online and can see my contacts but the UI is not repsonsive then)

poVoq commented 3 years ago

In theory it could auto discover them via https://xmpp.org/extensions/xep-0156.html but in my own testing it didn't work with most servers.

Not sure what it causing the later freeze. Maybe you have really a lot of connections setup in another client?