2016-05-12 2 views
2

Je voudrais envoyer des pings périodiques au serveur pour maintenir la connexion active.StarScream websocketDidReceivePong n'est pas appelé pour writePing

C'est la fonction d'envoyer ping

socket.writePing(NSData()) 

Mais je ne reçois pas le retour pong

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

le délégué ci-dessus lorsque le serveur se feu renvoie le pong.

Pour votre information: Je suis en mesure d'établir avec succès socket web se connecter envoyer un message et une connexion étroite et je l'ai mis en œuvre et j'ai donné socket.delegate=self

WebSocketPongDelegate 

Voici l'URL socket web que j'utilise à des fins de test

ws: //echo.websocket.org/

Je me demande pourquoi je ne récupère pas le pong du serveur socket Web.

Répondre

5

Votre socket est-il une propriété de votre classe pour être sûr qu'elle reste collée? Si vous l'allouez uniquement sur une pile de fonctions, elle ne sera plus visible et les délégués ne seront jamais appelés. De plus, le pongDelegate est séparé du délégué régulier, vous devez définir que l'auto ainsi:

socket.pongDelegate = self