2016-05-12 40 views
2

Ich möchte periodische Pings an den Server senden, um die Verbindung aufrecht zu erhalten.StarScream websocketDidReceivePong wird nicht für writePing aufgerufen

Dies ist die Funktion ping

socket.writePing(NSData()) 

zu senden, aber ich bin nicht der pong zurück

func websocketDidReceivePong(socket: WebSocket){ 
    wsConsole.text = wsConsole.text .stringByAppendingString("\n websocket received pong") 
} 

die oben Delegierten abgefeuert erhalten bekommen, wenn Server die pong sendet.

FYI: ich in der Lage bin erfolgreich Web-Buchse herzustellen verbindet Nachricht und enge Verbindung senden und ich habe realisiert, und ich habe socket.delegate=self

WebSocketPongDelegate 

Hier wird die Bahn Socket-URL gegeben, die mich zu Testzwecken verwenden

ws: //echo.websocket.org/

ich frage mich, Warum bekomme ich die Pong nicht vom Web Socket Server zurück?

Antwort

5

Ist Ihre Steckdose eine Eigenschaft Ihrer Klasse, um sicher zu gehen, dass sie in der Nähe ist? Wenn Sie es nur auf einem Funktionsstapel zuweisen, fällt es nicht in den Geltungsbereich und die Delegierten werden nie aufgerufen. Auch ist die pongDelegate getrennt von den regulär Delegierten, so müssen Sie, dass mich selbst setzen, wie gut:

socket.pongDelegate = self