merge master

This commit is contained in:
Erik 2015-07-01 07:10:19 -04:00
commit 6ecd1e2a79
3 changed files with 33 additions and 5 deletions

View File

@ -78,12 +78,18 @@ Install pods:
$ pod install $ pod install
``` ```
Import in your swift file: Import the module:
Swift:
```swift ```swift
import Socket_IO_Client_Swift import Socket_IO_Client_Swift
``` ```
Objective-C:
```Objective-C
#import <Socket_IO_Client_Swift/Socket_IO_Client_Swift-Swift.h>
```
##API ##API
Constructors Constructors
----------- -----------
@ -104,6 +110,7 @@ Options
- `log: Bool` If `true` socket will log debug messages. Default is false. - `log: Bool` If `true` socket will log debug messages. Default is false.
- `sessionDelegate: NSURLSessionDelegate` Sets an NSURLSessionDelegate for the underlying engine. Useful if you need to handle self-signed certs. Default is nil. - `sessionDelegate: NSURLSessionDelegate` Sets an NSURLSessionDelegate for the underlying engine. Useful if you need to handle self-signed certs. Default is nil.
- `path: String` - If the server uses a custom path. ex: `"/swift"`. Default is `""` - `path: String` - If the server uses a custom path. ex: `"/swift"`. Default is `""`
- `extraHeaders: [String: String]?` - Adds custom headers to the initial request. Default is nil.
Methods Methods
------- -------

View File

@ -1,6 +1,6 @@
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = "Socket.IO-Client-Swift" s.name = "Socket.IO-Client-Swift"
s.version = "2.3.6" s.version = "2.3.7"
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.
@ -12,7 +12,7 @@ Pod::Spec.new do |s|
s.author = { "Erik" => "nuclear.ace@gmail.com" } s.author = { "Erik" => "nuclear.ace@gmail.com" }
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.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v2.3.6' } s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v2.3.7' }
s.source_files = "SocketIOClientSwift/**/*.swift" s.source_files = "SocketIOClientSwift/**/*.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

View File

@ -37,6 +37,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
private var closed = false private var closed = false
private var _connected = false private var _connected = false
private var extraHeaders:[String: String]?
private var fastUpgrade = false private var fastUpgrade = false
private var forcePolling = false private var forcePolling = false
private var forceWebsockets = false private var forceWebsockets = false
@ -109,6 +110,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
cookies = opts?["cookies"] as? [NSHTTPCookie] cookies = opts?["cookies"] as? [NSHTTPCookie]
log = opts?["log"] as? Bool ?? false log = opts?["log"] as? Bool ?? false
socketPath = opts?["path"] as? String ?? "" socketPath = opts?["path"] as? String ?? ""
extraHeaders = opts?["extraHeaders"] as? [String: String]
} }
deinit { deinit {
@ -194,6 +196,13 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
private func createWebsocket(andConnect connect:Bool) { private func createWebsocket(andConnect connect:Bool) {
ws = WebSocket(url: NSURL(string: urlWebSocket! + "&sid=\(sid)")!, ws = WebSocket(url: NSURL(string: urlWebSocket! + "&sid=\(sid)")!,
cookies: cookies) cookies: cookies)
if extraHeaders != nil {
for (headerName, value) in extraHeaders! {
ws?.headers[headerName] = value
}
}
ws?.queue = handleQueue ws?.queue = handleQueue
ws?.delegate = self ws?.delegate = self
@ -228,7 +237,13 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
let headers = NSHTTPCookie.requestHeaderFieldsWithCookies(cookies!) let headers = NSHTTPCookie.requestHeaderFieldsWithCookies(cookies!)
req.allHTTPHeaderFields = headers req.allHTTPHeaderFields = headers
} }
if extraHeaders != nil {
for (headerName, value) in extraHeaders! {
req.setValue(value, forHTTPHeaderField: headerName)
}
}
doRequest(req) doRequest(req)
} }
@ -476,7 +491,13 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
let headers = NSHTTPCookie.requestHeaderFieldsWithCookies(cookies!) let headers = NSHTTPCookie.requestHeaderFieldsWithCookies(cookies!)
reqPolling.allHTTPHeaderFields = headers reqPolling.allHTTPHeaderFields = headers
} }
if extraHeaders != nil {
for (headerName, value) in extraHeaders! {
reqPolling.setValue(value, forHTTPHeaderField: headerName)
}
}
doRequest(reqPolling) doRequest(reqPolling)
} }