diff --git a/Examples/Demo/TelegraphDemo.swift b/Examples/Demo/TelegraphDemo.swift index 1493cc3..7d1910a 100644 --- a/Examples/Demo/TelegraphDemo.swift +++ b/Examples/Demo/TelegraphDemo.swift @@ -124,7 +124,7 @@ extension TelegraphDemo: ServerWebSocketDelegate { func server(_ server: Server, webSocket: WebSocket, didSendMessage message: WebSocketMessage) { serverLog("WebSocket sent message: \(message)") } - + func serverDidDisconnect(_ server: Server) { serverLog("Server disconnected") } diff --git a/Sources/Server/Server.swift b/Sources/Server/Server.swift index 8d3cb0b..c53dae2 100644 --- a/Sources/Server/Server.swift +++ b/Sources/Server/Server.swift @@ -106,13 +106,13 @@ extension Server: TCPListenerDelegate { httpConnection.open() } } - - public func listenerSocketDisconnected(_ listener: TCPListener) { + + public func listenerDisconnected(_ listener: TCPListener) { delegateQueue.async(weak: self) { server in server.webSocketDelegate?.serverDidDisconnect(self) } } - + } // MARK: HTTPConnectionDelegate implementation diff --git a/Sources/Server/ServerWebSocketDelegate.swift b/Sources/Server/ServerWebSocketDelegate.swift index e299846..0225332 100644 --- a/Sources/Server/ServerWebSocketDelegate.swift +++ b/Sources/Server/ServerWebSocketDelegate.swift @@ -9,13 +9,19 @@ import Foundation public protocol ServerWebSocketDelegate: class { + /// Called when a web socket connected func server(_ server: Server, webSocketDidConnect webSocket: WebSocket, handshake: HTTPRequest) + + /// Called when a web socket disconnected func server(_ server: Server, webSocketDidDisconnect webSocket: WebSocket, error: Error?) + /// Called when a message was received from a web socket func server(_ server: Server, webSocket: WebSocket, didReceiveMessage message: WebSocketMessage) + + /// Called when a message was sent to a web socket func server(_ server: Server, webSocket: WebSocket, didSendMessage message: WebSocketMessage) - - /// Called when the main listener for the server has disconnected, this should result in the server completely disconnecting + + /// Called when the server's listener has disconnected, this should result in the server completely disconnecting func serverDidDisconnect(_ server: Server) } diff --git a/Sources/Transport/TCPListener.swift b/Sources/Transport/TCPListener.swift index e5032cd..f531072 100644 --- a/Sources/Transport/TCPListener.swift +++ b/Sources/Transport/TCPListener.swift @@ -10,10 +10,11 @@ import Foundation import CocoaAsyncSocket public protocol TCPListenerDelegate: class { + /// Called when the listener accepts a new incoming socket func listener(_ listener: TCPListener, didAcceptSocket socket: TCPSocket) - - /// Called when the main socket for a TCPListener has disconnected - func listenerSocketDisconnected(_ listener: TCPListener) + + /// Called when the listener socket has disconnected + func listenerDisconnected(_ listener: TCPListener) } public final class TCPListener: NSObject { @@ -63,10 +64,10 @@ extension TCPListener: GCDAsyncSocketDelegate { delegate?.listener(self, didAcceptSocket: socket) } - + public func socketDidDisconnect(_ sock: GCDAsyncSocket, withError err: Error?) { /// We are disconnecting everything so notify the server that we are disconnected guard sock == socket else { return } - delegate?.listenerSocketDisconnected(self) + delegate?.listenerDisconnected(self) } }