7 ms·
All these problems have been solved in XMPP years ago, and there are some clients fully supporting the mobile experience and usage of multiple clients. On the
by ge0rg 11y ago
All these problems have been solved in XMPP years ago, and there are some clients fully supporting the mobile experience and usage of multiple clients.
On the Desktop, Swift and Gajim come to my mind, on Android Conversations is getting really awesome (and yaxim, which I am the author of, supports the basic multi-client/mobile use case you are interested in).
That said, the XMPP protocol is not perfect, and it is lacking some important elements for a 2010+ mobile chat developer, but considering that it was initially developed in 1999, that mobile chat is only one of its many use cases, and that there are extensions covering all you have asked for, the critique is not appropriate.
[0] http://swift.im/swift.html http://swift.im/swift.html
[1] http://gajim.org/ http://gajim.org/
[2] http://conversations.im/ http://conversations.im/
[3] https://yaxim.org/ https://yaxim.org/
- wink 11y agoThat's exactly the problem, though. There are so many extensions that it's about as much work finding out which ones are even needed and how they interact for your case (in this case the replay) as is implementing, say, a good chunk of IRC. And no, I'm not exaggerating, I've done both and decided that writing XMPP clients is not for me a long time ago. Addendum: I really love XMPP, but I do think the many many extensions have hurt it more than one defined spec. And yes, I know it supports many use cases, but I simply only care for 1:1 and multi user chat.
- ge0rg 11y agoYou are right. The XMPP Standards Foundation is currently preparing to create a list of "must-have" client and server XEPs for certain use cases, like Instant Messaging or IoT. This will hopefully make the path easier for future application developers.
- goffi 11y agoJust for the record, we are also working on a next-gen XMPP client, with decentralized blogging, file sharing, end 2 end encryption and all, and planing to do an Android port. Other projects like Movim also do similar things too, XMPP is definitely very alive these days. Sending message to other devices is managed by message carbons which is in last call for being a standard XEP, and support is becoming more and more common. XMPP is all but deprecated, very active, working well, with a large ecosystem. But is really badly known by most of people(I have by the way started a series of article to explain it: http://www.goffi.org/tag/talk_xmpp http://www.goffi.org/tag/talk_xmpp). It's really difficult to be heard these days, but there is a new wave in XMPP world (check our project: http://salut-a-toi.org http://salut-a-toi.org or movim: http://movim.eu http://movim.eu).
- estefan 11y agoIs there any way to handle message histories that survive the XMPP server (ejabberd) being restarted? At the moment all the MUC room histories vanish if I need to restart ejabberd which is a farce in a cloud world... And message carbons work, but since ejabberd only seems to support a single auth token meaning that if users connect with multiple devices they can't actually log out of only a single one without pulling the plug on all connected devices. Are these only ejabberd issues or issues in the XMPP specs? BTW this is for realtime chat on for an app, nothing federated... I'm open to non-XMPP options too.
- goffi 11y ago> Is there any way to handle message histories that survive the XMPP server (ejabberd) being restarted? Message Archive Management (XEP-0313) is supposed to do that. > And message carbons work, but since ejabberd only seems to support a single auth token meaning that if users connect with multiple devices they can't actually log out of only a single one without pulling the plug on all connected devices. Not sure to understand: if you disconnect a device, all the other devices with the same jid are disconnected? If so, it's definitely not normal, and not a spec issue. I'm also surprised to see ejabberd having this behavior, you should talk to the dev team.
- estefan 11y ago> Message Archive Management (XEP-0313) is supposed to do that. Thanks, I'll check that out. > if you disconnect a device, all the other devices with the same jid are disconnected? No, not on disconnection - I can't seem to find a way to tie multiple auth tokens to a single user (one per device) to allow them to log out on different devices individually. At the moment logging out one device would disconnect all clients.
- jessaustin 11y agoXMPP is all but deprecated... Just a short English usage note: "all but" means something like "almost". Judging by the rest of your post, you probably mean "XMPP is far from deprecated" here.
- hackerboos 11y agoMy understanding is that it is not the clients that are the problem but rather there is patchy support in open source XMPP servers to utilize the new mobile friendly features. [1] - https://www.process-one.net/en/ejabberd/protocols/ https://www.process-one.net/en/ejabberd/protocols/ [2] - https://prosody.im/doc/xeplist https://prosody.im/doc/xeplist [3] - https://github.com/esl/MongooseIM#features-and-supported-standards https://github.com/esl/MongooseIM#features-and-supported-sta...