2

我想定期向服务器发送 ping 以保持连接处于活动状态。

这是发送 ping 的函数

socket.writePing(NSData())

但我没有拿回乒乓球

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

当服务器发回pong时,上述委托将被解雇。

仅供参考:我能够成功建立 Web 套接字连接发送消息并关闭连接,并且我已经实现并且我已经给出socket.delegate=self

WebSocketPongDelegate

这是我用于测试目的的网络套接字 url

ws://echo.websocket.org/

我想知道为什么我没有从网络套接字服务器取回乒乓球。

4

1 回答 1

6

您的套接字是您班级的财产以确保它存在吗?如果您仅在函数堆栈上分配它,它将超出范围,并且代表将永远不会被调用。此外,pongDelegate它与常规委托是分开的,因此您还需要将其设置为 self :

socket.pongDelegate = self

于 2016-12-24T16:52:01.513 回答