From 19c125369948691fd813ac835f14e991f3bc4eb0 Mon Sep 17 00:00:00 2001 From: Andrei <78256107+shalom-aviv@users.noreply.github.com> Date: Mon, 20 Jan 2025 16:16:00 +0300 Subject: [PATCH] Support for Custom NSURLSessionConfiguration in Native WebSocket Implementation (#111) --- .../SwiftCentrifuge.xcodeproj/project.pbxproj | 18 +- .../Base.lproj/Main.storyboard | 99 ++++--- .../AppIcon.appiconset/1024.jpg | Bin 0 -> 68276 bytes .../AppIcon.appiconset/Contents.json | 51 +--- .../Images.xcassets/Contents.json | 6 + .../Proxy/ProxySettingsViewController.swift | 272 ++++++++++++++++++ .../Proxy/URLSessionConfiguration+proxy.swift | 50 ++++ Example/SwiftCentrifuge/ViewController.swift | 101 ++++++- README.md | 14 + Sources/SwiftCentrifuge/Client.swift | 116 ++++++-- .../WebSocket/NativeWebSocket.swift | 21 +- 11 files changed, 629 insertions(+), 119 deletions(-) create mode 100644 Example/SwiftCentrifuge/Images.xcassets/AppIcon.appiconset/1024.jpg create mode 100644 Example/SwiftCentrifuge/Images.xcassets/Contents.json create mode 100644 Example/SwiftCentrifuge/Proxy/ProxySettingsViewController.swift create mode 100644 Example/SwiftCentrifuge/Proxy/URLSessionConfiguration+proxy.swift diff --git a/Example/SwiftCentrifuge.xcodeproj/project.pbxproj b/Example/SwiftCentrifuge.xcodeproj/project.pbxproj index d47cb14..fba1e82 100644 --- a/Example/SwiftCentrifuge.xcodeproj/project.pbxproj +++ b/Example/SwiftCentrifuge.xcodeproj/project.pbxproj @@ -7,12 +7,14 @@ objects = { /* Begin PBXBuildFile section */ - 3A58470528C9CF4800D85C0E /* SwiftCentrifuge in Frameworks */ = {isa = PBXBuildFile; productRef = 3A58470428C9CF4800D85C0E /* SwiftCentrifuge */; }; 3A451D4028D2EE33004F85A5 /* PrintLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A451D3F28D2EE33004F85A5 /* PrintLogger.swift */; }; + 3A58470528C9CF4800D85C0E /* SwiftCentrifuge in Frameworks */ = {isa = PBXBuildFile; productRef = 3A58470428C9CF4800D85C0E /* SwiftCentrifuge */; }; 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; + B2D4E30C2D0B5FCB009D6119 /* URLSessionConfiguration+proxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2D4E30A2D0B5FCB009D6119 /* URLSessionConfiguration+proxy.swift */; }; + B2D4E30D2D0B5FCB009D6119 /* ProxySettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2D4E3092D0B5FCB009D6119 /* ProxySettingsViewController.swift */; }; DE2E2CA9220FEAC8004541DE /* BasicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE7C1AA8220F0E1A0037AE1E /* BasicTests.swift */; }; DE7C1AA4220F0D950037AE1E /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE7C1AA3220F0D950037AE1E /* Launch Screen.storyboard */; }; /* End PBXBuildFile section */ @@ -35,6 +37,8 @@ 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + B2D4E3092D0B5FCB009D6119 /* ProxySettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxySettingsViewController.swift; sourceTree = ""; }; + B2D4E30A2D0B5FCB009D6119 /* URLSessionConfiguration+proxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URLSessionConfiguration+proxy.swift"; sourceTree = ""; }; DE2E2C9F220FEAC4004541DE /* SwiftCentrifuge_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftCentrifuge_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DE2E2CA3220FEAC4004541DE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DE7C1AA3220F0D950037AE1E /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; @@ -81,6 +85,7 @@ 607FACD21AFB9204008FA782 /* Example for SwiftCentrifuge */ = { isa = PBXGroup; children = ( + B2D4E30B2D0B5FCB009D6119 /* proxy */, 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 607FACD71AFB9204008FA782 /* ViewController.swift */, 3A451D3F28D2EE33004F85A5 /* PrintLogger.swift */, @@ -118,6 +123,15 @@ name = "Supporting Files"; sourceTree = ""; }; + B2D4E30B2D0B5FCB009D6119 /* proxy */ = { + isa = PBXGroup; + children = ( + B2D4E3092D0B5FCB009D6119 /* ProxySettingsViewController.swift */, + B2D4E30A2D0B5FCB009D6119 /* URLSessionConfiguration+proxy.swift */, + ); + path = proxy; + sourceTree = ""; + }; DE7C1AA5220F0E1A0037AE1E /* SwiftCentrifugeTests */ = { isa = PBXGroup; children = ( @@ -234,6 +248,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + B2D4E30C2D0B5FCB009D6119 /* URLSessionConfiguration+proxy.swift in Sources */, + B2D4E30D2D0B5FCB009D6119 /* ProxySettingsViewController.swift in Sources */, 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, 3A451D4028D2EE33004F85A5 /* PrintLogger.swift in Sources */, 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, diff --git a/Example/SwiftCentrifuge/Base.lproj/Main.storyboard b/Example/SwiftCentrifuge/Base.lproj/Main.storyboard index e9becf2..a595f94 100644 --- a/Example/SwiftCentrifuge/Base.lproj/Main.storyboard +++ b/Example/SwiftCentrifuge/Base.lproj/Main.storyboard @@ -1,10 +1,11 @@ - + - + + @@ -16,27 +17,46 @@ - - + + + + + + + + + + + + + + + + + + + -