<p dir="ltr"><br>
On 7 Mar 2016 10:51 p.m., "Martin Thomson" <<a href="mailto:martin.thomson@gmail.com">martin.thomson@gmail.com</a>> wrote:<br>
><br>
> On 8 March 2016 at 05:03, Frederic Jacobs <<a href="mailto:lists@fredericjacobs.com">lists@fredericjacobs.com</a>> wrote:<br>
> > 3) When the iPhone gets that push notification, it doesn’t display anything<br>
> > to the user but open a socket in the background to the Whisper Systems web<br>
> > socket to fetch the message payload. Decrypts it. Checks the user’s<br>
> > notification display style preference. And shows relevant information.<br>
><br>
> That isn't the most efficient means of using push messaging.  Why not<br>
> encrypt the message?  Assuming that it is small enough, that is.<br>
></p>
<p dir="ltr">Doing it in this manner provides a number of advantages, but namely it allows Android, iOS and Desktop to all share exactly the same protocol with the Signal server, which means we only need one implementation for the server, and we don't introduce the possibility of different protocol features for different devices. The only exception to this mechanisms we use to trigger respective devices to download latest messages from the server (I.e. push messages on iOS and Android, and whatever is used for Desktop), which are understandably much more closely tied to the devices.</p>
<p dir="ltr">More subtley, it affords us the ability to move away from these push systems in favour of something else. For iOS it may not make much sense but for Android, where the ecosystem is very varied, and there are a number of derivative OSes, many of which are completely open source and don't use Google's cloud messaging, it means we can (theoretically) pretty easily create versions of Signal that work for these ecosystems too, with minimal effort.</p>
<p dir="ltr">We've now reached a situation where we can create a Signal application in either Objective C, Java or JavaScript for a new environment/ecosystem without having to write much/any code for the protocol, and only having to implement a way in which for the server to send a "ping" notification to the client. This is a pretty sweet place to be.</p>
<p dir="ltr">Hope this makes sense.</p>
<p dir="ltr">Cheers,<br>
Sam.<br>
 _______________________________________________<br>
> Messaging mailing list<br>
> <a href="mailto:Messaging@moderncrypto.org">Messaging@moderncrypto.org</a><br>
> <a href="https://moderncrypto.org/mailman/listinfo/messaging">https://moderncrypto.org/mailman/listinfo/messaging</a><br>
</p>