I spent a long time trying to get the following to all work:
1. Store and forward
2. e2e encryption
3. Messages received on multiple clients at the same time, with clients being able to reconnect and pick up the complete conversation history.
In theory, all possible.
In reality, none of the clients I tried supported the same combo of XMPP plugins and encryption methods.
Oh, and I need clients that work on MacOS, Windows, and Android.
I am using conversations legacy on Android right now because that works with how ejabberd is setup on my machine, and how ejabberd is setup works with the clients other people I want to talk to are using.
I gave up using XMPP on a laptop since I'd get encrypted messages with the wrong key sent to other devices except whichever one I'd used most recently to send a message with.
I never did manage to set sending images working at faster than ~2KB/s.
It is like I am back in 1996 and using AOL IM, but worse.
I’m using ejabberd 20.07 on a Raspberry Pi 4, Conversations (paid) on Android, Monal on iOS and macOS and Gajim on Windows and Linux (sometimes macOS, too). OMEMO works fine between those. So do attachments/file transfers (not slow at all). Also MAM/history.
To have OMEMO working between multiple clients but the same user, make sure they’re all running and send a message from each client to your OMEMO contacts so they learn all your different keys and send answers encrypted for all of them.
In regards to Matrix. There’s only one reference client at the moment. But once other clients emerge and the protocol gets extended, they’ll probably have the same fate in that many 3rd party clients won’t support all features.
Just for the sake of accuracy, Matrix really does have a lot of impressively feature complete clients these days - Element, FluffyChat, Weechat, Mirage etc (and technically Element is 3 entirely non-overlapping codebases on web/desktop, iOS & Android). And the protocol is busy evolving; with MSCs landing on some clients before others (e.g. FluffyChat implements BlurHash based image thumbnails but Element doesn't yet). So far we haven't had massive fragmentation though, because the spec itself is monolithic - it's completely unambiguous on what the official recommended featureset is at any point in time. Anything beyond that is experimental, and there's no guarantee that it will work compatibly at all. So when something like blurhashes turns up as a random community spec change proposal (https://github.com/matrix-org/matrix-doc/blob/anoa/blurhash/...), some clients go and implement it, and once proven it gets baked into the official spec.
1. Store and forward 2. e2e encryption 3. Messages received on multiple clients at the same time, with clients being able to reconnect and pick up the complete conversation history.
In theory, all possible.
In reality, none of the clients I tried supported the same combo of XMPP plugins and encryption methods.
Oh, and I need clients that work on MacOS, Windows, and Android.
I am using conversations legacy on Android right now because that works with how ejabberd is setup on my machine, and how ejabberd is setup works with the clients other people I want to talk to are using.
I gave up using XMPP on a laptop since I'd get encrypted messages with the wrong key sent to other devices except whichever one I'd used most recently to send a message with.
I never did manage to set sending images working at faster than ~2KB/s.
It is like I am back in 1996 and using AOL IM, but worse.