merge development
This commit is contained in:
commit
a5db13c8b5
14
README.md
14
README.md
@ -90,21 +90,21 @@ Carthage
|
|||||||
-----------------
|
-----------------
|
||||||
Add this line to your `Cartfile`:
|
Add this line to your `Cartfile`:
|
||||||
```
|
```
|
||||||
github "socketio/socket.io-client-swift" ~> 6.1.5 # Or latest version
|
github "socketio/socket.io-client-swift" ~> 6.1.6 # Or latest version
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `carthage update --platform ios,macosx`.
|
Run `carthage update --platform ios,macosx`.
|
||||||
|
|
||||||
CocoaPods 0.36.0 or later (iOS 8+)
|
CocoaPods 1.0.0 or later
|
||||||
------------------
|
------------------
|
||||||
Create `Podfile` and add `pod 'Socket.IO-Client-Swift'`:
|
Create `Podfile` and add `pod 'Socket.IO-Client-Swift'`:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
source 'https://github.com/CocoaPods/Specs.git'
|
|
||||||
platform :ios, '8.0'
|
|
||||||
use_frameworks!
|
use_frameworks!
|
||||||
|
|
||||||
pod 'Socket.IO-Client-Swift', '~> 6.1.5' # Or latest version
|
target 'YourApp' do
|
||||||
|
pod 'Socket.IO-Client-Swift', '~> 6.1.6' # Or latest version
|
||||||
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
Install pods:
|
Install pods:
|
||||||
@ -123,7 +123,7 @@ import SocketIOClientSwift
|
|||||||
Objective-C:
|
Objective-C:
|
||||||
|
|
||||||
```Objective-C
|
```Objective-C
|
||||||
#import <SocketIOClientSwift/SocketIOClientSwift-Swift.h>
|
@import SocketIOClientSwift;
|
||||||
```
|
```
|
||||||
|
|
||||||
CocoaSeeds
|
CocoaSeeds
|
||||||
@ -132,7 +132,7 @@ CocoaSeeds
|
|||||||
Add this line to your `Seedfile`:
|
Add this line to your `Seedfile`:
|
||||||
|
|
||||||
```
|
```
|
||||||
github "socketio/socket.io-client-swift", "v6.1.5", :files => "Source/*.swift" # Or latest version
|
github "socketio/socket.io-client-swift", "v6.1.6", :files => "Source/*.swift" # Or latest version
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `seed install`.
|
Run `seed install`.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = "Socket.IO-Client-Swift"
|
s.name = "Socket.IO-Client-Swift"
|
||||||
s.module_name = "SocketIOClientSwift"
|
s.module_name = "SocketIOClientSwift"
|
||||||
s.version = "6.1.5"
|
s.version = "6.1.6"
|
||||||
s.summary = "Socket.IO-client for iOS and OS X"
|
s.summary = "Socket.IO-client for iOS and OS X"
|
||||||
s.description = <<-DESC
|
s.description = <<-DESC
|
||||||
Socket.IO-client for iOS and OS X.
|
Socket.IO-client for iOS and OS X.
|
||||||
@ -14,7 +14,7 @@ Pod::Spec.new do |s|
|
|||||||
s.ios.deployment_target = '8.0'
|
s.ios.deployment_target = '8.0'
|
||||||
s.osx.deployment_target = '10.10'
|
s.osx.deployment_target = '10.10'
|
||||||
s.tvos.deployment_target = '9.0'
|
s.tvos.deployment_target = '9.0'
|
||||||
s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v6.1.5' }
|
s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v6.1.6' }
|
||||||
s.source_files = "Source/**/*.swift"
|
s.source_files = "Source/**/*.swift"
|
||||||
s.requires_arc = true
|
s.requires_arc = true
|
||||||
# s.dependency 'Starscream', '~> 0.9' # currently this repo includes Starscream swift files
|
# s.dependency 'Starscream', '~> 0.9' # currently this repo includes Starscream swift files
|
||||||
|
|||||||
@ -54,8 +54,8 @@ public class SSLSecurity : NSObject {
|
|||||||
public var validatedDN = true //should the domain name be validated?
|
public var validatedDN = true //should the domain name be validated?
|
||||||
|
|
||||||
var isReady = false //is the key processing done?
|
var isReady = false //is the key processing done?
|
||||||
var certificates: [Data]? //the certificates
|
var certificates: [NSData]? //the certificates
|
||||||
var pubKeys: [SecKey]? //the public keys
|
@nonobjc var pubKeys: [SecKey]? //the public keys
|
||||||
var usePublicKeys = false //use public keys or certificate validation?
|
var usePublicKeys = false //use public keys or certificate validation?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -148,7 +148,7 @@ public class SSLSecurity : NSObject {
|
|||||||
SecTrustSetPolicies(trust,policy)
|
SecTrustSetPolicies(trust,policy)
|
||||||
if self.usePublicKeys {
|
if self.usePublicKeys {
|
||||||
if let keys = self.pubKeys {
|
if let keys = self.pubKeys {
|
||||||
let serverPubKeys = publicKeyChainForTrust(trust)
|
let serverPubKeys = publicKeyChainForTrust(trust: trust)
|
||||||
for serverKey in serverPubKeys as [AnyObject] {
|
for serverKey in serverPubKeys as [AnyObject] {
|
||||||
for key in keys as [AnyObject] {
|
for key in keys as [AnyObject] {
|
||||||
if serverKey.isEqual(key) {
|
if serverKey.isEqual(key) {
|
||||||
@ -241,7 +241,7 @@ public class SSLSecurity : NSObject {
|
|||||||
|
|
||||||
- returns: the public keys from the certifcate chain for the trust
|
- returns: the public keys from the certifcate chain for the trust
|
||||||
*/
|
*/
|
||||||
func publicKeyChainForTrust(_ trust: SecTrust) -> [SecKey] {
|
@nonobjc func publicKeyChainForTrust(trust: SecTrust) -> [SecKey] {
|
||||||
let policy = SecPolicyCreateBasicX509()
|
let policy = SecPolicyCreateBasicX509()
|
||||||
let keys = (0..<SecTrustGetCertificateCount(trust)).reduce([SecKey]()) { (keys: [SecKey], index: Int) -> [SecKey] in
|
let keys = (0..<SecTrustGetCertificateCount(trust)).reduce([SecKey]()) { (keys: [SecKey], index: Int) -> [SecKey] in
|
||||||
var keys = keys
|
var keys = keys
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWebsocket {
|
public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePollable, SocketEngineWebsocket {
|
||||||
public let emitQueue = DispatchQueue(label: "com.socketio.engineEmitQueue", attributes: DispatchQueueAttributes.serial)
|
public let emitQueue = DispatchQueue(label: "com.socketio.engineEmitQueue", attributes: DispatchQueueAttributes.serial)
|
||||||
public let handleQueue = DispatchQueue(label: "com.socketio.engineHandleQueue", attributes: DispatchQueueAttributes.serial)
|
public let handleQueue = DispatchQueue(label: "com.socketio.engineHandleQueue", attributes: DispatchQueueAttributes.serial)
|
||||||
public let parseQueue = DispatchQueue(label: "com.socketio.engineParseQueue", attributes: DispatchQueueAttributes.serial)
|
public let parseQueue = DispatchQueue(label: "com.socketio.engineParseQueue", attributes: DispatchQueueAttributes.serial)
|
||||||
@ -103,6 +103,10 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe
|
|||||||
case let .path(path):
|
case let .path(path):
|
||||||
socketPath = path
|
socketPath = path
|
||||||
case let .voipEnabled(enable):
|
case let .voipEnabled(enable):
|
||||||
|
if !socketPath.hasSuffix("/") {
|
||||||
|
socketPath += "/"
|
||||||
|
}
|
||||||
|
|
||||||
voipEnabled = enable
|
voipEnabled = enable
|
||||||
case let .secure(secure):
|
case let .secure(secure):
|
||||||
self.secure = secure
|
self.secure = secure
|
||||||
@ -116,7 +120,9 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe
|
|||||||
}
|
}
|
||||||
|
|
||||||
super.init()
|
super.init()
|
||||||
|
|
||||||
|
sessionDelegate = sessionDelegate ?? self
|
||||||
|
|
||||||
(urlPolling, urlWebSocket) = createURLs()
|
(urlPolling, urlWebSocket) = createURLs()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,7 +210,7 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
emitQueue.async { self.doLongPoll(for: reqPolling as URLRequest) }
|
doLongPoll(for: reqPolling as URLRequest)
|
||||||
}
|
}
|
||||||
|
|
||||||
private func createURLs() -> (URL, URL) {
|
private func createURLs() -> (URL, URL) {
|
||||||
@ -453,9 +459,7 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe
|
|||||||
polling = true
|
polling = true
|
||||||
probing = false
|
probing = false
|
||||||
invalidated = false
|
invalidated = false
|
||||||
session = URLSession(configuration: .default,
|
session = Foundation.URLSession(configuration: .default, delegate: sessionDelegate, delegateQueue: OperationQueue.main)
|
||||||
delegate: sessionDelegate,
|
|
||||||
delegateQueue: OperationQueue())
|
|
||||||
sid = ""
|
sid = ""
|
||||||
waitingForPoll = false
|
waitingForPoll = false
|
||||||
waitingForPost = false
|
waitingForPost = false
|
||||||
@ -546,3 +550,11 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension SocketEngine {
|
||||||
|
public func URLSession(session: URLSession, didBecomeInvalidWithError error: NSError?) {
|
||||||
|
DefaultSocketLogger.Logger.error("Engine URLSession became invalid", type: "SocketEngine")
|
||||||
|
|
||||||
|
didError(reason: "Engine URLSession became invalid")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user