UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Options for a good XMPP client?

    Scheduled Pinned Locked Moved App Development
    xmpp
    24 Posts 7 Posters 8.5k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • poVoqP Offline
      poVoq
      last edited by poVoq

      Nice XMPP/Jabber support in UT would be cool, but so far there seems to be only the Loqui.im, Kaidan and Movim.

      Loqui works reasonably well, but XMPP support really seems to be a stop-gap for them and it isn't really developed very actively. As a HTML5 app it also isn't very well integrated with notifications etc.

      Kaidan seems promising, but the Kirigami UI is really alien in UT and right now it is still lacking too many features to be usable.

      Movim is another HTML5 app and hasn't been updated for a while. It probably is a decent option, but depends on an external web-service (in addition to your XMPP server) and also doesn't do encrypted chats.

      Other options:

      1. Make a HTML5 app with ConverseJS ( https://conversejs.org/ )
        https://thealaskalinuxuser.wordpress.com/2018/04/24/ubuntu-touch-make-your-own-jabber-xmpp-app-in-10-minutes/
        (Could probably be made better with some stuff from this electron port: https://github.com/nick-denry/Chimeverse )

      This would be rather cool as it supports OMEMO e2e encryption and a lot of other modern features of XMPP. But I am not sure how well notification will work and what about web-push? Also the fullscreen theme isn't really mobile optimized and thus would need quite a bit of an update.

      1. Look into porting Smoose from SailfishOS:
        https://github.com/geobra/harbour-shmoose
        https://openrepos.net/content/schorsch/shmoose

      Seems like a really promising start and a bit further in development than Kaidan, but I am unsure how easy it is to port over SailfishOS apps.

      1. Adopt Jabbercat:
        https://github.com/jabbercat/jabbercat
        https://jabbercat.org/
        Currently a qt5/python desktop XMPP client not very actively developed, but this could be a good base for making a convergent XMPP app for UT touch.

      Any other ideas or suggestions?

      I might look into getting ConverseJS to run, but the other two options are way beyond my current capabilities for tinkering with code 😞

      Fairphone 5 (Not yet installed UT on it though)

      PhoenixLandPiratP 1 Reply Last reply Reply Quote 0
      • PhoenixLandPiratP Offline
        PhoenixLandPirat @poVoq
        last edited by

        I personally put my faith in Kaidan, its actively developed, and hopefully it'll gain more developers since its on every platform known to man, but it does need more people on it, and it'd grow our relationship with plasma mobile, which seems to be going very well at the moment.

        Of cause if an XMPP app is made for Ubuntu or takes on the UT guidelines, then more options are arguably better, but at the moment, the only xmpp app I see making a good future on Ubuntu Touch, would be Kaidan, I believe there team will actively work on making Ubuntu touch stuff work, such as notifications, and background services, but html5 apps, especially from apps that don't know, or care that we exist, is slightly less likely to get support for features required for many people.

        1 Reply Last reply Reply Quote 0
        • poVoqP Offline
          poVoq
          last edited by

          https://github.com/geobra/harbour-shmoose/issues/55

          Some interesting comments from the Smoose developer.

          Fairphone 5 (Not yet installed UT on it though)

          1 Reply Last reply Reply Quote 0
          • poVoqP Offline
            poVoq
            last edited by

            I played around with the UT Movim app a bit. Actually works reasonably well (but needs an update to Qtweb and SDK 16:04). The advantage of Movim is that it doesn't work like other XMPP clients internally (uses websockets instead) and thus should potentially work better on UT? The build in federated micro-blogging system is nice as well.

            Fairphone 5 (Not yet installed UT on it though)

            1 Reply Last reply Reply Quote 0
            • KrilleK Offline
              Krille
              last edited by

              Hi, I will update the app in the next couple of days. Isn't much work πŸ˜‰

              1 Reply Last reply Reply Quote 2
              • poVoqP Offline
                poVoq
                last edited by

                Just a small heads up. I got a prototype working based on ConverseJS. Not ready yet for a release, but you can follow development here:
                https://github.com/poVoq/conversejs-ubports

                It's a HTML5 app using qtweb so don't expect great performance, but it seems quite usable on my Nexus5 so far.

                The main issue right now is that it seems like the regular method of font loading in a browser does not work in a UT webview container. Anyone got a tip how to do that?

                Fairphone 5 (Not yet installed UT on it though)

                1 Reply Last reply Reply Quote 0
                • poVoqP Offline
                  poVoq
                  last edited by poVoq

                  You can download a prototype version of my ConverseJS wrapper here now:
                  https://github.com/poVoq/conversejs-ubports/releases/tag/0.1

                  I can't release this on the open-store due to the automatic app review restricting absolute paths in all apps. I tried about everything I could think of to avoid having the "/opt/click.ubuntu.com/" string in the ConverseJS settings.

                  screen_small.jpg

                  Fairphone 5 (Not yet installed UT on it though)

                  1 Reply Last reply Reply Quote 0
                  • poVoqP Offline
                    poVoq
                    last edited by

                    Found a working work-around which managed to by-pass the open-store restriction:

                    https://open-store.io/app/conversejs.povoq

                    Help to improve it appreciated, although other than some CSS fixes, most work has to be done upstream in the main ConverseJS.

                    Ideas to improve performance would be great.

                    Also: is there a way to pass through browser notifications to the main system notifications in qtwebview?

                    Fairphone 5 (Not yet installed UT on it though)

                    AppLeeA 1 Reply Last reply Reply Quote 0
                    • AppLeeA Offline
                      AppLee @poVoq
                      last edited by

                      @poVoq for information about the notifications, refers to : http://docs.ubports.com/en/latest/appdev/guides/pushnotifications.html

                      But AFAIK, there is no such think through QTWebView, maybe you can catch the notifications somehow and use the push notifications system πŸ€”

                      poVoqP 1 Reply Last reply Reply Quote 0
                      • poVoqP Offline
                        poVoq @AppLee
                        last edited by

                        @AppLee no I mean the HTML browser notifications that modern browsers use to directly pass through web-site notifications to the system notification queue. I am aware that these will not work if an app goes to sleep, but that can be suppressed with UT-tweek tool.

                        Push notifications are a totally different beast that I am looking into here: https://github.com/poVoq/conversejs-ubports/issues/1
                        (if there was an implementation for this, it would work with any XMPP client on UT, not only mine)

                        Fairphone 5 (Not yet installed UT on it though)

                        AppLeeA 1 Reply Last reply Reply Quote 0
                        • AppLeeA Offline
                          AppLee @poVoq
                          last edited by AppLee

                          @poVoq I understand what you want to achieve.
                          But I don't think confined apps can access the notification layer without using the push notifications system.

                          [Edit] Have a look there : https://open-store.io/app/pushclient.christianpauly
                          It's easy to understand but I don't have time to dive in πŸ˜‰

                          poVoqP 1 Reply Last reply Reply Quote 0
                          • poVoqP Offline
                            poVoq @AppLee
                            last edited by poVoq

                            @AppLee Push notifications work slightly different with XMPP, as it already has build in support for that. In theory you just need to pass back your device identifier and JID of the push service to the XMPP server (ConverseJS has build in support for that) and the XMPP server (if it has mod_push enabled) contacts the push notification service of the app developer (via S2S connection). The problem is that such an XMPP compatible server software that talks to the Ubports push notification server does not exist yet. There are existing projects though that seem quite close to what is needed.

                            Edit: if the Ubports push notification server would understand XML messages it could likely also be contacted directly by the XMPP server. I think the original Android push notification system works like that, it is just that Google decided it would only allow registered servers to contact their push notification server, so a proxy server by the XMPP app developer is still needed. I think for Ubports push notification server is is not the case.

                            Fairphone 5 (Not yet installed UT on it though)

                            poVoqP 1 Reply Last reply Reply Quote 0
                            • poVoqP Offline
                              poVoq @poVoq
                              last edited by poVoq

                              The developer of P2 is willing to add Ubports push notification support for XMPP clients, but it would need to be implemented by someone with Java knowledge. According to him it should be really easy though.

                              On an unrelated note, this might also be a portable qt native xmpp client: https://github.com/ksiazkowicz/lightbulb

                              Fairphone 5 (Not yet installed UT on it though)

                              1 Reply Last reply Reply Quote -1
                              • poVoqP Offline
                                poVoq
                                last edited by

                                Just as an update to this: I talked to the developer of Jabbercat/aioxmpp and it seems it would be fairly easy to write a new mobile friendly qt quick controls 2 UI on top of his abstracted jclib (pure Python):
                                https://github.com/jabbercat/jclib

                                I am toying with the idea of having a go at it, but if a more experienced Python developer would take it up that would probably be more successful.

                                Fairphone 5 (Not yet installed UT on it though)

                                1 Reply Last reply Reply Quote 0
                                • poVoqP Offline
                                  poVoq
                                  last edited by

                                  Another but also Javascript based option that seems promising (but still needs a bit of work) is this:
                                  https://github.com/nioc/xmpp-web

                                  It is even PWA capable, so on Android for example it works quite nicely as a progressive web app already. I hope PWA will be added to UT at some point, as it is really a neat standard for webapps.

                                  Fairphone 5 (Not yet installed UT on it though)

                                  1 Reply Last reply Reply Quote 0
                                  • mito77M Offline
                                    mito77
                                    last edited by

                                    Hi everyone, I'm New on ubports, on android I use Conversation , but on Ubports I want to use xmpp client for Muc chatroom support like gajim on Debian . I try with converseJS but don't work because I can’t connect .

                                    nexus 5 16gb second hand UBPORTS

                                    poVoqP 1 Reply Last reply Reply Quote 0
                                    • poVoqP Offline
                                      poVoq @mito77
                                      last edited by

                                      @mito77 said in Options for a good XMPP client?:

                                      Hi everyone, I'm New on ubports, on android I use Conversation , but on Ubports I want to use xmpp client for Muc chatroom support like gajim on Debian . I try with converseJS but don't work because I can’t connect .

                                      Hi @mito77 can you explain better what you mean with "can't connect"? What XMPP server are you using? If it is self-hosted, make sure it is up to date and configured to expose BOSH or websockets as alternative connection methodes. Due to the webapp nature of ConverseJS you can not connect with the regular 5222 port as Conversations/Gajim etc. does.

                                      Fairphone 5 (Not yet installed UT on it though)

                                      mito77M B 2 Replies Last reply Reply Quote 0
                                      • mito77M Offline
                                        mito77 @poVoq
                                        last edited by mito77

                                        @poVoq thank you . it work very good with bosh or wss link . I found on the wiki of the xmpp service. but ConverseJS dont save my login, and don't save my wss or my bosh. When I
                                        restart the app it's blank . https://wiki.jabberfr.org/JabberFR
                                        it's because the client don't have XEP-0156 natively

                                        nexus 5 16gb second hand UBPORTS

                                        poVoqP 1 Reply Last reply Reply Quote 0
                                        • poVoqP Offline
                                          poVoq @mito77
                                          last edited by poVoq

                                          @mito77 the wss and bosh address is saved in the app, just not displayed again in the form field.

                                          However you need to put in again your JID and password each time. I have some ideas how to add an option to stay logged in, but doing so (with the option to also log out again) is a bit complicated.

                                          Xep-0156 is supported in the new upstream version of ConverseJS. I need to get around updating my app to it.

                                          Fairphone 5 (Not yet installed UT on it though)

                                          1 Reply Last reply Reply Quote 0
                                          • mito77M Offline
                                            mito77
                                            last edited by

                                            Hi Povoq I'm reconnected again and again on a muc, and the error message is : "This groupchat has reached its maximum number of participants". Or we are three people in the muc chatroom.

                                            nexus 5 16gb second hand UBPORTS

                                            poVoqP 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better πŸ’—

                                            Register Login
                                            • First post
                                              Last post