This commit is contained in:
Erik 2015-03-05 15:16:34 -05:00
parent d35934c79d
commit 59a5e1928c
2 changed files with 25 additions and 35 deletions

View File

@ -356,7 +356,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
private func probeWebSocket() { private func probeWebSocket() {
if self.websocketConnected { if self.websocketConnected {
self.ws?.send("2probe") self.sendWebSocketMessage("probe", withType: PacketType.PING)
} }
} }
@ -368,9 +368,11 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
} }
if self!.websocket { if self!.websocket {
self?.sendWebSocketMessage(msg, datas: datas) // println("sending ws: \(msg)")
self?.sendWebSocketMessage(msg, withType: PacketType.MESSAGE, datas: datas)
} else { } else {
self?.sendPollMessage(msg, datas: datas) // println("sending poll: \(msg)")
self?.sendPollMessage(msg, withType: PacketType.MESSAGE, datas: datas)
} }
} }
} }
@ -383,37 +385,16 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
} }
func sendPing() { func sendPing() {
// println("sending ping")
if self.websocket { if self.websocket {
self.ws?.send(PacketType.PING.rawValue) self.sendWebSocketMessage("", withType: PacketType.PING)
} else { } else {
let time = Int(NSDate().timeIntervalSince1970) self.sendPollMessage("", withType: PacketType.PING)
var req = NSMutableURLRequest(URL: NSURL(string:
self.urlPolling! + "&sid=\(self.sid)")!)
let postStr = "1:\(PacketType.PING.rawValue)"
let postData = postStr.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
let postLength = "\(postData.length)"
req.HTTPMethod = "POST"
req.setValue(postLength, forHTTPHeaderField: "Content-Length")
req.setValue("application/html-text", forHTTPHeaderField: "Content-Type")
req.HTTPBody = postData
NSURLConnection.sendAsynchronousRequest(req,
queue: self.workQueue) {[weak self] res, data, err in
if self == nil {
return
} else if err != nil {
// println(err)
self?.handlePollingFailed()
return
}
self?.doPoll()
}
} }
} }
func sendPollMessage(msg:String, datas:[NSData]?) { private func sendPollMessage(msg:String, withType type:PacketType, datas:[NSData]? = nil) {
// println("Sending: \(msg)") // println("Sending: \(msg)")
var postData:NSData var postData:NSData
var bDatas:[String]? var bDatas:[String]?
@ -433,8 +414,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
} }
} }
let strMsg = "\(PacketType.MESSAGE.rawValue)\(msg)" let strMsg = "\(type.rawValue)\(msg)"
let postCount = countElements(strMsg) let postCount = countElements(strMsg)
var postStr = "\(postCount):\(strMsg)" var postStr = "\(postCount):\(strMsg)"
@ -460,8 +440,8 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
} }
} }
func sendWebSocketMessage(str:String, datas:[NSData]?) { private func sendWebSocketMessage(str:String, withType type:PacketType, datas:[NSData]? = nil) {
self.ws?.send("\(PacketType.MESSAGE.rawValue)\(str)") self.ws?.send("\(type.rawValue)\(str)")
if datas != nil { if datas != nil {
for data in datas! { for data in datas! {
@ -491,7 +471,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
self.probing = false self.probing = false
self._websocket = true self._websocket = true
self._polling = false self._polling = false
self.ws?.send(PacketType.UPGRADE.rawValue) self.sendWebSocketMessage("", withType: PacketType.UPGRADE)
self.flushProbeWait() self.flushProbeWait()
} }
} }

View File

@ -103,11 +103,21 @@ class SocketIOClient {
// Connects to the server // Connects to the server
func connect() { func connect() {
if self.closed {
println("Warning! This socket was previously closed. This might be dangerous!")
self.closed = false
}
self.engine.open() self.engine.open()
} }
// Connect to the server using params // Connect to the server using params
func connectWithParams(params:[String: AnyObject]) { func connectWithParams(params:[String: AnyObject]) {
if self.closed {
println("Warning! This socket was previously closed. This might be dangerous!")
self.closed = false
}
self.params = params self.params = params
self.paramConnect = true self.paramConnect = true