3 ms·
I will preface this by admitting my only direct experience with IMAP as a protocol was with writing a few scripts to synchronise mail and having to fix bugs in
by cyphar 7y ago
I will preface this by admitting my only direct experience with IMAP as a protocol was with writing a few scripts to synchronise mail and having to fix bugs in the IMAP libraries I was using.
I must be missing something obvious -- how is IMAP a push protocol? All experiences with IMAP I've had are in the form of basic request-response flows.
Also, regarding JSON floats, most languages have the ability to give you errors if you encounter a float in a JSON field that is meant to be an integer. So it really shouldn't matter at all that JSON's floats are awful. I haven't looked, but does JMAP use floats?
I don't particularly love HTTP nor JSON, but if that's the only problem with JMAP then it's such a massive improvement over IMAP that we should have started switching to it yesterday.
- Sir_Cmpwn 7y agoBasically all IMAP servers found in the wild support IDLE: https://tools.ietf.org/html/rfc2177 https://tools.ietf.org/html/rfc2177
- 693471 7y agoIDLE isn't sufficient which is why Lemonade was defined https://tools.ietf.org/html/rfc5550 https://tools.ietf.org/html/rfc5550
- dboreham 7y agoExcept AOL and Yahoo.
- bjourne 7y agoBut that is an extension so you cannot count on it being there. Thus a well-written client would need to handle servers that do not support IDLE. The X11 protocol is similar in that it has a lot of extensions that are theoretically optional but de facto required to deliver a good user experience. It makes implementing such protocols complex because you need to duplicate code paths, one for when the extension is present and one for when it isn't.
- raimue 7y agoThe problem with IDLE is that it requires one TCP connection per folder you want to watch. The better alternative is NOTIFY, but in my experience, it is not as widely supported by server and client implementations. https://tools.ietf.org/html/rfc5465 https://tools.ietf.org/html/rfc5465
- isodude 7y agoThe IDLE-command must be a push type of command? Which is used heavily by clients instead of polling. As Microsoft does it with RPC is just a mess, they do a http call with 2billion bytes in request size, let the connection terminate at timeout and fire up a new call. I for one hope not that this is how JMAP solves it :(
- heavenlyblue 7y agoJMAP doesn't solve it at all.
- chrismorgan 7y agoSure it does. See https://jmap.io/#push-mechanism https://jmap.io/#push-mechanism
- Mailtemi 7y agoIf submit an app to Apple with IDLE support I would bet will be rejected. JMAP has PushSubscription which will play nice with Apple / Google push services.