Rocket.chat: XMPP Federation Compatibility

Created on 5 Aug 2015  Â·  96Comments  Â·  Source: RocketChat/Rocket.Chat

Hi

Are there any plans for xmpp compatibility, either supporting the xmpp protocol internally, or providing some bridging functionality? I love the look of rocket.chat, but I need android compatibility, and would like to stick with the conversations xmpp client (for now).

Thanks for all the great work. Rocket.chat looks fantastic.

There is a $115 open bounty on this issue. Add to the bounty at Bountysource.

Planned bounty experts needed federation protocols

Most helpful comment

We will start to work on this again, now the we have deveklopers fully dedicated to do the federation implementation.

All 96 comments

This might be a good feature. XMPP is kind of a default protocol for chat messaging and this way you can use an XMPP server like Openfire or similar to handle these message loads.

:+1:

XMPP is planned but yet to be developed. We need more background on that, so if anyone is kind-of-expert on XMPP, we could use some help.

Just for the record, some people criticize XMPP and say matrix.org is a better alternative. I am not in the position to evaluate it, but maybe you guys have more expertise to do that.

https://github.com/digicoop/kaiwa is a javascript based webclient for group chat based on XMPP.
It uses a XMPP server (https://github.com/digicoop/kaiwa-server) as it's backend, which appears to be just Prosody (https://prosody.im/) with a bunch of useful extensions ("websocket" "carbons" "smacks" "idlecompat" "mam" "offline" https://modules.prosody.im/) added to it.

I think "expert" is something of a strong word, but I know a thing or two about XMPP. How might I best contribute, @marceloschmidt?

If I may formulate a wish: Supporting XMPP Jingle would be fantastic, as it would allow participation in video chat via XMPP ...

+1
Might want to take a look at this: https://en.wikipedia.org/wiki/BOSH

+1+1, we need XMPP support very much!

+1

:+1:

+1

+1

Please do not spam with +1 for the sake of developers and subscribers. Thanks !

If you don't want to get spammed, there is a _Unsubscribe_ button on the left. You can use that!

@rockneverdies55 +1s are not useful, and fault lies not with those wishing to keep track of the issue's progress, but with those who are spamming. If people want to encourage this to be completed, they might spend their +1 time adding to the bounty instead.

Github should have a voting system. But while they don't, I think adding +1 doesn't do much for developers trying to figure what the community needs more, as it will only account for the dev to come and take another look at the issue... something like what people do on facebook, posting "up" so that their post is always the last one edited and hence at the top.

I agree that github needs voting system like gitlab just started it.

+1's could help developers to prioritize the work...

+1's could help developers to prioritize the work...

They do not. Bounties have a better chance at that. There is a bounty on this issue. Contributing to the bounty might see this issue completed faster. +1s will not. What people should do, therefore, is obvious.

Finally, progress, thanks to the effort from @saqura !

Please track https://demo.rocket.chat/channel/xmpp_gateway

Currently pending two bug fixes -> #2110 and #2111

Amazing work! I can't wait to switch my xmpp server to rocket.chat.
Please ask me if you need assistance testing (I have a bit of experience
with xmpp... unfortunately haha).

On Wed, Feb 3, 2016 at 10:45 AM, SingLi [email protected] wrote:

Finally, progress, thanks to the effort from @saqura
https://github.com/saqura !

Please track https://demo.rocket.chat/channel/xmpp_gateway

Currently pending two bug fixes -> #2110
https://github.com/RocketChat/Rocket.Chat/issues/2110 and #2111
https://github.com/RocketChat/Rocket.Chat/issues/2111

—
Reply to this email directly or view it on GitHub
https://github.com/RocketChat/Rocket.Chat/issues/404#issuecomment-178891782
.

Here is a link to the project if you want to try it (It is currently not fully working though, see the issues linked above). Please note that this is by no means a full integration of XMPP - it only relays messages.

XMPP wormhole to Rocket.Chat now available

The #general channel is now tunneled through cyberspace via XMPP wormhole at [email protected] Messages hyperspace freely in both directions. XMPP users can connect to room name = rocketchat ; server = chat.yax.im to talk to #general users at any time.

@saqura - please provide more details on how to be part of Rocket.Chat from the XMPP world! Thanks again! :+1:

UPDATE: Feb 20, 2018 - this bridge is no longer in operations.

If you want to run your own bridge, there are now Rocket.Chat-specific instructions on how to configure the bridge at https://github.com/saqura/xmppwb#integrating-with-rocketchat.

Here's a sample session, from XMPP:

screen shot 2016-02-09 at 10 21 59 pm

From Rocket.Chat:

screen shot 2016-02-09 at 10 22 44 pm

@Sing-Li if I click in your link https://demo.rocket.chat/channel/xmppbridge I go inside with one XMPP guest account that is not really what I am thinking about. I am thinking Rockechat can use any XMPP account for Login or can use the users from a database list like Openfire Proxody etc . I like that working? or is only a XMPP bridge? Xmpp us relay server for webrtc need to be login with one real xmpp account in rocket chat

@royalterra This is a start. A great start, thanks to contributor @saqura !

Please create tickets for your XMPP requirements, ONE EXACT feature per ticket so that both the community AND the devs can understand them.

In due time, we will have full XMPP interop built into Rocket.Chat.

ONE EXACT feature per ticket
In due time, we will have full XMPP interop built into Rocket.Chat.

I think you'll find that this will kill the idea. There is simply too much to XMPP to do it bite by bite, and the chances of this project seeing it through in that manner are vanishingly small. If you truly want full XMPP compatibility, you'd need to make your signalling protocol compatible with XMPP as a first class concern and do so up-front.

If that's not viable, we should be realistic about what kind of (almost certainly very minimal) compatibility is likely and that will have to come from the core team; such fundamental things can't really be done as drive-by contributions.

@benlangfeld thanks for your thoughts. This ticket has been open since August 4th of last year.

Judging from the low community and contributor interest since its creation, this is the best we'll be able to do in terms of prioritizing the work.

But if the community-at-large sees XMPP the same way as you do --> also as an all or nothing deal, we might have to live with what you deem as "minimal compatibility" :disappointed:

we might have to live with what you deem as "minimal compatibility"

And that's fine; my point is that should be set as the expectation because I think it's unlikely to get beyond that. That's not criticism, but just a little splash of realism so that people don't get unduly excited or expectant.

@benlangfeld and @Sing-Li Proxody and Openfire already support jingle for use xmpp us signalling I already test Openfire and look works . If Rocket Chat can use XMPP for login and signalling you will get more developers try to willing to join here specially from Android .

@royalterra It would seem that one of the main motivations for the existence of this project is precisely to avoid using XMPP as the underlying protocol. While I do not agree with that approach, the likelihood of a complete change in protocol is slim and at this stage one simply has to live with the reinvention; asking for core XMPP support is a fight that's almost certainly not worth fighting.

@benlangfeld The reason services like Rocket.chat need to exist is to bring together power and casual chat users into a chat system that's actually good (unlike say, Facebook chat or Skype) with awesome functionality. The power users likely already have a good XMPP setup that they'd like to keep, myself and half the users of my server for instance.

To make Rocket.chat the truly universally loved chat service I believe XMPP support is essential!

@ywecur You are totally right but @benlangfeld not understand XMPP is not dead I have 1000 users in my server and grow by days all use the XMPP accounts to communicate with google chat , facebook , aol etc . Now if Rocket Chat like to be and other project with not integration possible is better support the project of openfire with Jingles or other support webrtc with xmpp and run away for what waste time. I believe 50% of the people here is expecting XMPP integration and the only keep the people here is that small integration they do. People is looking for Webrtc with XMPP because open many doors to other places like Android , Iphone etc . Possible Like that can be make a real nice APP for Android and not that we have now.

@royalterra I understand XMPP very well thank you. Read my comments again if you need clarification. I am not opposed to the idea of a UI like RocketChat based on XMPP, and in-fact would love such a thing; I am saying you are probably wasting your energy campaigning for it in this project.

@benlangfeld I not see much options for a real webrtc chat Openfire have the chat ofmeet but is very poor and like I say possible the developers have a idea and the public and user others possible a consultation will make clear the ideas to all

@benlangfeld Do we really need to update all of Rocket chat for this though? We don't need to support all the features.

@Sing-Li I do not at all believe XMPP Support should be an all or nothing deal. Speaking for myself and my server, just rudimentary support is something we'd love.

Let's Chat has already integrated xmpp xupport. So I don't think it's too hard to have it in the core.

Hi guys thanks all dev's for your great work with Rocket.Chat i love it. Dont really know if this is the place to ask this but dont know any better one so forgive me if im wrong and please tell me where to go instead. I whould like to know if i can integrate Rocket.Chat with Openfire I mean to get Rocket.Chat use xmpp capabilities and user authentication etc.. through Openfire. Is it possible right now? if so how can i do it? is there any documentation about that? if not, are you planing to implement something like that? Thanks a lot

That is not possible @iojeda.

Hi @benlangfeld thanks for your fast answer ;) Thats a pity :(

What about minimal requirement to have Rocket.Chat being able to join XMPP-Federation, or would it be too much?
Over recent XMPP-Bridge you cant really do that, can you?

This is a great idea, just today I mentioned the idea on demo independently of knowing this ticket existed. I was simply thinking of the case of having the ability to text chat with someone quickly with an _actual native_ client (we we like to throw the word native around with cordova and electron).

Something like conversations.....

The main issue is how heavy and slow the "native" app is, I'd much rather bring up conversations with my other servers and interface with that quickly, than worry about opening up the rocketchat app.

Not that the cordova app isn't appreciated, it just is what it is.

Maybe we can make a second server that do the integration between Rocket.Chat API and XMPP

What do you think about it?

+1 for Issue not found.

Yeah please implement ! :+1:

+1

+1

+1 for xmpp

+1 for XMPP

+1

+1

+1

+1

+1 for XMPP

Stop +1ing!

If you want to chat, use a chat, not an issue.

Stop +1ing!

mobile doesn't show add emoji to OP.

Well, it would be very nice RocketChat join XMPP. RC users could take advantage of XMPP features and ecosystem. I thought about these advantages.

  • Federated and decentralized RC network;
  • Use android apps like Xabber and Conversation;
  • Use XMPP clients like pidgin and others;
  • Integration of libraries like ConverseJS to create custom projects;
  • Inherit XMPP integrations (for example, Zabbix provides a XMPP integration);

And of course, XMPP community would have the most amazing open source chat system created! :)

Hope this issue is evolving from a development (code) and specification (read standards) problem to an integration problem (API ninja, running configurations). I still don't know how to do it, but different references points me that with matrix we can solve nearly all compatibilities

Hope someone have time to test it and bring some light.

https://matrix.org/docs/projects/as/rocket-chat-federation.html

https://twitter.com/matrixdotorg/status/841424770025545730

https://matrix.org/docs/guides/faq.html#what-is-the-difference-between-matrix-and-xmpp

We would love to see XMPP exposed from Rocket.Chat. We have tooling that would like to connect to it in that way and it would be very useful to us.

With Slack dropping XMPP support, this would be a huge argument in favor of Rocket.chat for me.

It would be awesome to see a version of Rocket.Chat that is built entirely on an XMPP server, not needing its own server. That would allow the Rocket.Chat devs to focus on front-end development while leveraging a server infrastructure like ejabberd for the backend.

@stevenroose So a little bit like Candy Chat?

@benlangfeld Yes, a little bit like several old projects that never managed to produce any form of acceptable UX :)

How can I join rocketchat communications with a Jabber account on a proper Jabber server with a proper Jabber client? I do not wish to use any web-based solutions.

@mirabilos I don't think that's possible right now.. That's kinda what this issue is intended for: for Rocket.Chat to run with an XMPP server as a backend.

We will start to work on this again, now the we have deveklopers fully dedicated to do the federation implementation.

@alansikora take a look at this thread.

Being able to use Rocket Chat as a front end of f.e. ejabberd or any Jabber
server would have incredible value!

On Fri, Sep 14, 2018, 14:07 Gabriel Engel notifications@github.com wrote:

@alansikora https://github.com/alansikora take a look at this thread.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/RocketChat/Rocket.Chat/issues/404#issuecomment-421484481,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA0F3NWRYQFEL6Hx72vB7W0mRpF7Jrs8ks5ubBqNgaJpZM4Flv6J
.

would be really great to see XMPP supported
just adding extra motivation to the team !! great wotrk guys

This feature would be nice to have a wide-ranging integration option. We already use the Slack compatible API, but XMPP is much more common in the enterprise world.

I'm the author of xmpp.js
I might take the bounty but I need some clarification as some comments here and on the bounty seems to be out of scope with the description.

This is specifically about client interface (XMPP C2S) to Rocket.Chat right?
Meaning you'll be able to use an XMPP client/library with Rocket.Chat.

Sonny Piers dixit:

This is specifically about client interface (XMPP C2S) to Rocket.Chat
right? Meaning you'll be able to use an XMPP client/library with
Rocket.Chat.

I don't understand this part.

What I'd like to have (which may not be the same as what others
in this thread wish to get) is that I can use my existing Jabber
account on some other server to join Rocket.Chat rooms on a
Rocket.Chat server, so s2s.

@Natureshadow has something in the works for this (an XMPP transport that can act as a Rocket.Chat client) which I’m sure he’ll document once it’s ready.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

@Natureshadow has something in the works for this (an XMPP transport that can act as a Rocket.Chat client) which I’m sure he’ll document once it’s ready.

I am not goging to write another document on how to install XMPP transports.
I do also think that general tutorials on XMPP servers are out of scope
here.
-----BEGIN PGP SIGNATURE-----

iQJlBAEBCgBPFiEEPJ1UpHV1wCb7F/0mt5o8FqDE8pYFAlzuoWYxGmh0dHBzOi8v
d3d3LmRvbWluaWstZ2VvcmdlLmRlL2dwZy1wb2xpY3kudHh0LmFzYwAKCRC3mjwW
oMTyln0eD/oC+ozdwhf068SbSkMlx2FzKY/fQ6H1HroWYC844UEiRZB62rjOuMOw
+BDGr/AaojzMEfxy5c8smefKn+uaWH9uevWG9fC4Tg+U8OfU/dzvefjFm4LArzKo
/gWMiZEw9XO4xdzlb/tRV1IaE2kgIJkKjGCVdIAtmA6dKVAdDeOASEOcW/wrYAIM
S2GxnmymVRQguMP8WLVV++FmsJ1d1nGKV7+2vili0cdxg188uGeZd6lIGJlWWmz8
GrO59lEJeTmFw3LPLBIg1iIdDvUSBLXaLlDiucRaWslCZUM/4KEOb9QHejWBbjKs
o8pvEWVfQKJHuYR7d/3KltU9S/R6LCTWkPQ5bvQl8CemJ4STqLXDRsmnq1VyEwzq
ZpemrXjmaFiyoBZcyYfh6x8n6UiWGFNsn8FqYtV2p1bBZ4k1iZC2ZU8wbFKof79J
tBYVeRpm5X1rEKzJRBR0Z/Sx3Yj40K/eoQlcdPAF0rX3oSM4bi1BEraNlPhCBk7W
scReBLxBrQuTIpcpg/O5k/rlqJDxo1ugTO7lt5e0R0PaxhWkTclxyQ/Ims8lM+uh
96mCETSedBWaUG/Hiap2izz1UCEVAzrrZdOOklQuS+uf4E0V5X+kzWvvCCyr709t
zdBDXx80WWyQNhCsvdwETZ3bwm76xP2yWZ1INgGZdcXKr1ezMBG/tw==
=VTpL
-----END PGP SIGNATURE-----

Sonny Piers dixit:
This is specifically about client interface (XMPP C2S) to Rocket.Chat right? Meaning you'll be able to use an XMPP client/library with Rocket.Chat.
I don't understand this part. What I'd like to have (which may not be the same as what others in this thread wish to get) is that I can use my existing Jabber account on some other server to join Rocket.Chat rooms on a Rocket.Chat server, so s2s.

I was thinking of something else, though, personally. I was thinking of making RocketChat work on top of an existing XMPP server, thereby replacing the RocketChat server. Basically making RocketChat into an XMPP web frontend. That can be done f.e. by using the ConverseJS headless mode; it's a full-fledged JS client library, so then what remains is linking the ConverseJS client with the UI.

I was thinking of something else, though, personally. I was thinking of making RocketChat work on top of an existing XMPP server, thereby replacing the RocketChat server. Basically making RocketChat into an XMPP web frontend. That can be done f.e. by using the ConverseJS headless mode; it's a full-fledged JS client library, so then what remains is linking the ConverseJS client with the UI.

Exactly... that should be the great idea to have something like this.

@achihanl There are countless XMPP JavaScript libraries. I used stanza.io and I was very pleased by its API (it even has external OMEMO plugins and plugins for file upload etc.).

I agree that this would be the perfect approach (RocketChat as an XMPP client to normal XMPP server).

Unfortunately this would probably mean rewriting massive amounts of code in the frontend, one way or another. So even though it's simple conceptually it would require quite significant engineering effort (having said that I didn't inspect the source code :) ).

Any news on it?

Seems only the slack bridge is working well for daily use... Neither the IRC implementation seems to work stable enough. See https://github.com/RocketChat/Rocket.Chat/issues/16799

hi there, any news around here on XMPP please?

hi there, any news around here on XMPP please?

Not gonna happen @ImaCrea

hi there, any news around here on XMPP please?

Not gonna happen @ImaCrea

o k . . .

ImaCrea dixit:

hi there, any news around here on XMPP please?

Not gonna happen @ImaCrea

o k . . .

Yeah, totally NOT great.

RocketChat sucks so much. I recently had to give in to demands
from my boss and install the äpp on a work-provided device, and
it’s the worst chat program I’ve seen so far. Sometimes, texts
are shortened to one line of about 20 characters, and when clicking
on them, the new view shows something different which omits other
texts, and… argh, I don’t know how even to describe that.

With XMPP, I could at least use a usable client; ideally one in
terminal like mcabber.

Very disappointed,

//mirabilos

15:39⎜«mika:#grml» mira|AO: "mit XFree86® wär’ das nicht passiert" - muhaha
15:48⎜ also warum machen die xorg Jungs eigentlich alles
kaputt? :) 15:49⎜ thkoehler: weil sie als Kinder nie den
gebauten Turm selber umschmeissen durften? -- ~/.Xmodmap wonders…

On Tue, Nov 24, 2020 at 10:26:52AM -0800, mirabilos wrote:

ImaCrea dixit:

hi there, any news around here on XMPP please?

Not gonna happen @ImaCrea

o k . . .

Yeah, totally NOT great.

RocketChat sucks so much. I recently had to give in to demands
from my boss and install the äpp on a work-provided device, and
it’s the worst chat program I’ve seen so far. Sometimes, texts
are shortened to one line of about 20 characters, and when clicking
on them, the new view shows something different which omits other
texts, and… argh, I don’t know how even to describe that.

With XMPP, I could at least use a usable client; ideally one in
terminal like mcabber.

Very disappointed,
//mirabilos

Thanks for making clear that RocketChat is an application,
not a protocol, nor something that wants to talk with other protocols.

In case I misunderstood,
please tell where to find a list of clients and bridges.

Thanks for making clear that RocketChat is an application,
not a protocol, nor something that wants to talk with other protocols.

Well that's the core of the problem, you know. It is about reinventing the wheel instead of building on well-established foundations.

What comes out is a proprietary product in the clothing of an "open source" application, which solves a few minor UI issues for team chat (and not even that, really), but is worse at its core functionality than anything else ever was.

Such applications are about vendor lock-in as much as any other proprietary chat application.

For federation capabilities better to use Matrix.org, that can natively bridge with XMPP and most of other messengers: https://matrix.org/bridges/
And it even have Rocket.Chat bridge https://github.com/exul/matrix-rocketchat but it's development is currently suspended :(

Alexey Murz Korepov dixit:

For federation capabilities better to use Matrix.org, that can natively
bridge with XMPP and most of other messengers:

Doesn’t help those of us where someone at the employer’s
had the bright idea of switching to RocketChat.

Also, advertising for one specific alternative is quite OT
(and there are many (valid) ones) plus those are probably
not what people here are looking for…

bye,

//mirabilos

Yes, I hate users and I want them to suffer.
-- Marco d'Itri on gmane.linux.debian.devel.general

Doesn’t help those of us where someone at the employer’s had the bright idea of switching to RocketChat.

My employer, after my story about Matrix bridge capabilities, have switched to Matrix exactly from RocketChat, this step have allowed to aggregate most of other chats with external company clients in different networks (XMPP, Discord, Telegram, Skype, WhatsApp) into one place, and talk with all of them from one native client app (android, ios, desktop), together with all internal chatrooms.

This is better, than wait another 5 years when federation possibly will be implemented in RocketChat.

I am surprised as well and I wonder how Rocketchat intends to survive if they don't answer to the rapid growing demand for interoperable solutions. And with XMPP and Matrix protocols they got everything to make it work.

Maybe you could tell us a bit more @benlangfeld ? Or maybe @alansikora you could give us a hint, as I see you're assigned on many tickets showing in the project "federation"?

Not gonna happen

That's very sad. I have to use two large RocketChat's with high-volume chats and all that javascript mess makes the browser slow or even let it die. Are there any other than browser UI's? There's at least a pidgin plugin (https://github.com/EionRobb/purple-rocketchat), but it's not working properly (can't manage rate limiting, does not support websocket continuation, can't join private rooms, misses messages, ...). Would you support at least some sort of non browser GUI?

Check out https://github.com/KDE/ruqola Qt/QML client for Rocket Chat

Maybe you could tell us a bit more @benlangfeld ?

This topic has been floating around (both in this ticket and other places) for about 6 years and has never had any engagement from the project maintainers. There is 0 evidence that it is at all interesting to them, and no-one has seriously moved to make it a reality. Indeed, there are technical impediments to it functioning acceptably. To believe that any of that is suddenly going to change is naiive.

Doesn’t help those of us where someone at the employer’s had the bright idea of switching to RocketChat.

I plead guilty, at least for turning down Matrix (which would most probably have won the election if I hadn't vetoed it quite fiercely). I have learnt by now ☺.

Funny how this issue got the matching issue number by the way :D.

Unfollowing this thread now.

Maybe you could tell us a bit more @benlangfeld ?

This topic has been floating around (both in this ticket and other places) for about 6 years and has never had any engagement from the project maintainers. There is 0 evidence that it is at all interesting to them, and no-one has seriously moved to make it a reality. Indeed, there are technical impediments to it functioning acceptably. To believe that any of that is suddenly going to change is naiive.

This is pretty clear. Thank you for taking the time to explain it well. :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

neha1deshmukh picture neha1deshmukh  Â·  3Comments

tanc picture tanc  Â·  3Comments

marceloschmidt picture marceloschmidt  Â·  3Comments

Buzzele picture Buzzele  Â·  3Comments

antn89 picture antn89  Â·  3Comments