Welcoming Rocket.Chat to Matrix
matrix.org
matrix.org
[1] https://docs.rocket.chat/guides/security/end-to-end-encrypti...
This is the disadvantage of bridges, alas: if you want E2EE, you need to be on the same protocol throughout.
For instance, I can't think of a way that one would run an Element Web<->Rocket.Chat bridge clientside, as web browsers can't use local web services, short of a service worker... but by the time you're running a dedicated service-worker for a webapp which lets it talk to another webapp, it's basically become a multihead msgr.
To be fair, though E2EE is perfect for a general purpose messenger, I don't think it's necessary per se. Group chats that would normally appear on IRC don't have a need for E2EE (and verifying everyone in a public room is also extremely impractical!) which seems like a perfect use case for this integration.
Desktop web clients worked always.
It's probably a websockets issue.
I tried running behind haproxy and traefik, same problem.
I tried following some advice I got from a maintainer in their forums, same problem.
I went back to Mattermost.
Is a shame, rocket chat UI seems nicer to me than mattermost
Here is a recent example for nginx that handles websockets: https://github.com/geekgonecrazy/rocketchat-matrix-federatio...
They now have a feature where it can federate with matrix. This means rocketchat users on your rocketchat instance can talk to matrix users on a federated matrix network if you enable it.
This means you could use the Rocket.chat server and Rocket.chat UI as an alternative to a homeserver + matrix client.
I don't believe this allows using a matrix client to connect to rocket.chat server's directly or vice versa.
They could have just created a matrix client instead of the whole business model...
> Aaron from Rocket.Chat just published an excellent guide & video tour for how to actually set up your Rocket.Chat instance with Dendrite
Dendrite is a Matrix homeserver[1] so it looks like you can mix and match
[1]: https://matrix.org/docs/projects/try-matrix-now#servers
What would this accomplish that self hosting synapse doesn't?
It's totally possible to self host the official matrix 'synapse' daemon for self hosted slack-like functionality within an organization, and use the official 'element' client or any other compliant matrix protocol client. If it's for something like company slack-like functionality you can choose to federate or not federate.
https://github.com/matrix-org/synapse
I have one setup where the synapse daemon lives on a VM that's only accessible in company internal RFC1918 IP space so you can only connect to it if your laptop or other device is also on a split tunnel VPN.
Of course you could run it with a public IP as well.
It would have all your messages in it if you've been using it for years.
You may prefer the UI.
It may be more efficient (synapse gets a lot of bad press for being heavyweight).
You may partner with a company that already has one system, while you use the other, and would like to chat with each other without either of you changing out your infrastructure.
Having attempted to do exactly this recently, let me assure you that while it may be technically possible, it is practically infeasible.
Almost everything in Matrix, at multiple layer of abstraction, is built on the presumption of federation: federated events, federated authn/authz, etc. Try to turn federation off, and you're in a no-man's land of untested and unpredictable behaviors. Want to turn off federation _and_ make E2EE obligatory? Good luck! Even if you manage to get Synapse configured to work that way, you'll be delighted to discover that retention rules don't apply to encrypted events.
Synapse, by the way, is a real resource hog. It used an order of magnitude more resources than any other service in my entire infrastructure _at idle_ with no users and no federation. I would have loved to use one of the alternative server implementations, but none of them supported both E2EE and SSO.
Matrix is a dead-end.
> There are tonnes of unfederated Matrix servers out there,
No way to know for sure, but it certainly isn't a well-supported configuration.
> History retention does apply to encrypted events.
> Note that message retention policies don't apply to state events.
https://github.com/matrix-org/synapse/blob/develop/docs/mess...
> And Synapse only tends to use lots of resources when federated into large public rooms (these days)
Synapse used 30-50% of 1 CPU and ~1GB memory at idle with 1 room and 0 connected clients.
> No way to know for sure, but it certainly isn't a well-supported configuration
It really is. By default we develop against unfederated servers (synapse running on localhost). Of the synapses we host at EMS probably 30% are unfederated. It is completely supported.
> Note that message retention policies don't apply to state events
Correct. State events are key/value data associated with a room - eg who’s in it, what it’s called, whether it’s encrypted. obviously you can’t expire them after N days otherwise the structure of the room would disintegrate. It has nothing to do with E2EE messages.
> Synapse used 30-50% of 1 CPU and ~1GB memory at idle with 1 room and 0 connected clients.
Then something was going really weirdly wrong. It should idle at <1% cpu and ~150MB RAM on an unfederated server with one room and zero clients.
Very strange.
E2EE-encrypted message are persisted by Synapse as state events.
Or, maybe more precisely, if I set a message retention policy of X days, rows in event tables associated with E2EE-encrypted rooms, which are created when messages are sent to that room, and which are older than X days, are not removed.
> Try to turn federation off, and you're in a no-man's land of untested and unpredictable behaviors.
This is wrong. I have been using non federated server for over a year and I hardly faced any issue.
Matrix is a protocol with a primary focus on federation. Rocket.Chat is basically adopting the Matrix Protocol to bring Federation into the product. This means that two Rocket.Chat servers from two different companies on their respective infrastructure can now talk to each other. Or even if you are on Rocket.Chat and want communicate with another company that is using Element(the client developed the same people that are developing the Matrix Protocol).
Not to mention it means Federation with anyone that chooses to implement this common protocol. So beyond business interest alone but contributing to the greater ecosystem hopefully.
* Matrix has spent as many years I think as Rocket.Chat —> * Matrix has been around about as long as Rocket.Chat but focused heavily on federation
/s
The thread's topic is likely similar, Matrix being another protocol used by many things.
tabbott: we should so do this with Zulip - I think Matrix almost has all the threading primitives needed to bridge successfully now!
Is it just me or does it seem like there are certain places where there is little innovation?
If some of the many who have reimplemented the same thing on a new platform instead set out to create something new, maybe something new would appear on the scene.
They do, and novelties do appear. But then they usually fail to gain traction because they require users to migrate to them. Hence, interoperability wins in the long run.
Element targets individuals participating largely in public chat rooms, I suspect it's design will remain significantly different for that reason.
Different apps with different purposes, but compatible.
Please don't tell me to look at the channels list there's a lot of porn and most channels I have joined are dead.
1. https://github.com/mautrix/whatsapp 2. https://github.com/tijder/SmsMatrix 3. https://matrix.to/#/!RJFCFtixHgPhzacdhW:tedomum.net?via=ghos...
Honest question: when was Signal closed source, as Signal? I’m not familiar with this. I know it’s roots are in the old Moxie Marlinspike OpenWhisper apps, but that’s a long time ago and the last I looked, Signal open sourced all their code.
[1] https://news.ycombinator.com/item?id=26345937
[2] https://www.reddit.com/r/privacy/comments/qlw1ag/signal_is_a...
Don't get me started on the mobile app. I have so many stories of pain from Rocket Chat that it isn't funny.
I then spent several months writing a bespoke application to extract my community from RocketChat and move it to a different product because it was so terrible.
Now, I stopped using it in 2019 but had used it for the prior four years every single day and it only got worse with every release. I used to joke to my friends "what new bugs will this release have?" until the mobile app rewrite became so unbearable that it almost killed my community entirely.
Is it better now? Well, I bet it has more half baked features, like Matrix integration I guess. Rocket Chat always looked great on paper... Just don't try to use it too much, or look at the code.
In terms of where to hang out and where to use it, here are some handy spaces picked from my personal space bar...
* https://matrix.to/#/#community:matrix.org <-- rooms about Matrix itself
* https://matrix.to/#/#space:ansible.com <-- rooms about Ansible
* https://matrix.to/#/#activitypub-community:codelutin.com <-- rooms about Activity Pub
* https://matrix.to/#/#wikimedia-space:matrix.org <-- rooms about the Wikimedia community
* https://matrix.to/#/#solarpunks:solarpunk.cloud <-- a random solarpunk community i lurk in...
* https://matrix.to/#/#rlang:matrix.org <-- rooms about the R language
* https://matrix.to/#/#buddies-of-budgie:matrix.org <-- rooms about the Budgie desktop environment
etc etc. This ends up being way higher signal-to-noise than the room list (although there's always the risk that a space will get forgotten and neglected).
Obviously this selection is biased a bit towards open source software, given that's what I'm into, but there are loads of other communities too. Nobody's yet started a big global space tree to help find them (probably because subspace performance needs some work), so the best bet for discovering them otherwise is probably simply through DDG or Google or whatever, looking for folks advertising them on their websites.
Alternatively, you can head off into IRC or some other Matrix server (e.g. mozilla.org) from the room directory selector in your matrix client of choice. Many of my rooms are actually bridged into IRC, XMPP, Slack, Discord etc rather than entirely native Matrix.
https://view.matrix.org is a good list, at least the first few pages seemed SFW, most populous rooms are first, and you can search by keyword.
Once you get into the main room of any large community, check the topic or ask if there's a Space, which gives an organized overview of a community's rooms (in a featureful matrix client like Element).
I'm avoiding public rooms until my Matrix clients support multiple accounts/identities, so open source chats are still on an irc client for now.
Rocket.Chat is a real world chat client that seems to have some success and they just decided to delegate an important part of their stack to a third party project. What better validation do you expect than that?
Rocket.Chat still maintains its own full frontend and backend. With its own API's and integrations etc. But gains a new ability to communicate with anyone out there also using the Matrix protocol. Regardless of what Software they are running.
So say your company has Rocket.Chat running and then you start working on a project with another company. You can create federated rooms and collaborate.
IMO its very much a strategic advantage to have federation support in your tool.
I personally view this as an important move for the future of the internet and modern decentralized communication.