Ich schreibe eine Anwendung, die die SSL-Funktionen von NStream auf dem iPhone verwendet. Ich weiß, dass SSL funktioniert, weil ich Server direkt über SSL verbinden kann.
Ich habe ein Problem festgestellt, bei dem Protokolle, die starttls verwenden, von mir verlangen, auf dem Socket mit ungesichert zu kommunizieren, den Befehl starttls zu senden und dann denselben Socket für SSL wiederzuverwenden. Soweit ich weiß, können nstream-Verbindungen nicht wiederverwendet werden, und ich kann kein SSL auf ihnen starten, nachdem ich die Verbindung geöffnet habe.
Ich habe überlegt, meinen eigenen Socket zu erstellen, manuell darüber zu kommunizieren und dann einen NStream unter Verwendung des vorhandenen Sockets einzurichten und SSL auf diese Weise zu starten. Es scheint jedoch, dass die Kommunikation auf dem Socket es in einem Zustand platziert, in dem ich SSL darauf starten kann. Jeder Versuch, den Socket für NStream zu verwenden, führt zu einem Fehler.
Irgendwelche Gedanken?
Dies ist der richtige Weg, dies zu tun. während dies geschieht (Einstellung der Eigenschaft nach Socket-Verbindung) ist nicht dokumentiert, dies ist Code direkt von meinem Monal Xmpp-Client und Apple hat mir nie Probleme im App Store gegeben.
%Vor%Sobald die Verbindung geöffnet wurde und Sie NStreamEventOpenCompleted erhalten und der Befehl startTLS vom Client an den Host gesendet wurde:
%Vor%