From 5cc1759842f95041062da125ca4541aa98fdd4d8 Mon Sep 17 00:00:00 2001 From: JadianZheng Date: Fri, 5 Jul 2019 12:00:55 +0800 Subject: [PATCH 1/2] Auto detect which protocol to use depend on url scheme --- Source/SocketIO/Engine/SocketEngine.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index b4af5f48..08d4b896 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -250,6 +250,20 @@ open class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePollable, So if client == nil { return (URL(string: "http://localhost/")!, URL(string: "http://localhost/")!) } + + if let scheme = URLComponents(string: url.absoluteString)!.scheme { + switch scheme { + case let httpSheme where httpSheme.hasPrefix("http"): + forcePolling = true + secure = httpSheme.hasSuffix("s") + + case let webSocketSheme where webSocketSheme.hasPrefix("ws"): + forceWebsockets = true + secure = webSocketSheme.hasSuffix("ss") + + default: break + } + } var urlPolling = URLComponents(string: url.absoluteString)! var urlWebSocket = URLComponents(string: url.absoluteString)! From 553e41304563d316f4a1a8d143037bf0b776b961 Mon Sep 17 00:00:00 2001 From: JadianZheng Date: Tue, 22 Oct 2019 10:34:31 +0800 Subject: [PATCH 2/2] Fix optional type --- Source/SocketIO/Engine/SocketEngine.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index 08d4b896..a78cb10f 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -251,7 +251,7 @@ open class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePollable, So return (URL(string: "http://localhost/")!, URL(string: "http://localhost/")!) } - if let scheme = URLComponents(string: url.absoluteString)!.scheme { + if let scheme = URLComponents(string: url.absoluteString)?.scheme { switch scheme { case let httpSheme where httpSheme.hasPrefix("http"): forcePolling = true