I am using SRWebSocket/SocketRocket library in my app I am unable to set response timeout for it . I want to show a message if socket does not receive any data after few seconds
Following is my code
socketRocket = SRWebSocket(url: URL(string: streamUrl)!)
socketRocket?.delegate = self
socketRocket?.open()
Using following callback methods as well
func webSocketDidOpen(_ webSocket: SRWebSocket!) {
print("webSocketDidOpen")
showTableView()
}
func webSocket(_ webSocket: SRWebSocket!, didCloseWithCode code: Int, reason: String!, wasClean: Bool) {
getConversationId()
}
func webSocket(_ webSocket: SRWebSocket!, didFailWithError error: Error!) {
print("didFailWithError\(error)")
showLErrorView()
}
func webSocket(_ webSocket: SRWebSocket!, didReceiveMessage message: Any!) {
}
here is link to library
If you want to display some message when you don't get a response you can use a
Timer
, the basics it looks like that:and then you can call
startTimer()
when it is needed i.e. when the socket is opened:or after you send a message:
If you also want to set a timeout for connection (it is something separate from resopone timout), you can use
URLRequest
instead ofURL
:Full class that supports both connection and response timeout: