Merge branch '1.2'

This commit is contained in:
Erik 2015-04-08 17:07:59 -04:00
commit a0dff2fea4
7 changed files with 247 additions and 247 deletions

View File

@ -26,7 +26,7 @@ import Foundation
extension String { extension String {
private var length:Int { private var length:Int {
return countElements(self) return count(self)
} }
} }
@ -147,7 +147,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
urlWebSocket += "&\(keyEsc)=" urlWebSocket += "&\(keyEsc)="
if value is String { if value is String {
let valueEsc = (value as String).stringByAddingPercentEncodingWithAllowedCharacters( let valueEsc = (value as! String).stringByAddingPercentEncodingWithAllowedCharacters(
NSCharacterSet.URLHostAllowedCharacterSet())! NSCharacterSet.URLHostAllowedCharacterSet())!
urlPolling += "\(valueEsc)" urlPolling += "\(valueEsc)"
urlWebSocket += "\(valueEsc)" urlWebSocket += "\(valueEsc)"
@ -227,6 +227,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
} }
self?.waitingForPoll = false self?.waitingForPoll = false
if self!.fastUpgrade { if self!.fastUpgrade {
self?.doFastUpgrade() self?.doFastUpgrade()
return return
@ -266,7 +267,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
var postStr = "" var postStr = ""
for packet in self.postWait { for packet in self.postWait {
let len = countElements(packet) let len = count(packet)
postStr += "\(len):\(packet)" postStr += "\(len):\(packet)"
} }
@ -320,6 +321,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
} }
// A poll failed, tell the client about it // A poll failed, tell the client about it
private func handlePollingFailed(reason:String) { private func handlePollingFailed(reason:String) {
self._connected = false self._connected = false
self.ws?.disconnect() self.ws?.disconnect()

View File

@ -195,7 +195,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
return return
} }
self?.ackHandlers.addAck(ack, callback) self?.ackHandlers.addAck(ack, callback: callback)
dispatch_async(self!.emitQueue) { dispatch_async(self!.emitQueue) {
self?._emit(event, items, ack: ack) self?._emit(event, items, ack: ack)
@ -344,7 +344,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
var ackData:[AnyObject]? var ackData:[AnyObject]?
if data is NSArray { if data is NSArray {
ackData = data as? NSArray ackData = (data as? [AnyObject]?)!
} else if data != nil { } else if data != nil {
ackData = [data!] ackData = [data!]
} }

View File

@ -62,7 +62,7 @@ class SocketPacket {
} }
func getEvent() -> String { func getEvent() -> String {
return data?.removeAtIndex(0) as String return data?.removeAtIndex(0) as! String
} }
func addData(data:NSData) -> Bool { func addData(data:NSData) -> Bool {
@ -164,7 +164,6 @@ class SocketPacket {
} }
for arg in self.data! { for arg in self.data! {
if arg is NSDictionary || arg is [AnyObject] { if arg is NSDictionary || arg is [AnyObject] {
let jsonSend = NSJSONSerialization.dataWithJSONObject(arg, let jsonSend = NSJSONSerialization.dataWithJSONObject(arg,
options: NSJSONWritingOptions(0), error: &err) options: NSJSONWritingOptions(0), error: &err)
@ -205,7 +204,7 @@ class SocketPacket {
} }
} }
self.data = newArr self.data = newArr as [AnyObject]
} }
private func _fillInPlaceholders(data:AnyObject) -> AnyObject { private func _fillInPlaceholders(data:AnyObject) -> AnyObject {
@ -219,7 +218,7 @@ class SocketPacket {
var newDict = NSMutableDictionary(dictionary: dict) var newDict = NSMutableDictionary(dictionary: dict)
for (key, value) in dict { for (key, value) in dict {
newDict[key as NSCopying] = _fillInPlaceholders(value) newDict[key as! NSCopying] = _fillInPlaceholders(value)
} }
return newDict return newDict

View File

@ -22,9 +22,9 @@
import Foundation import Foundation
private let shredder = SocketParser.PacketShredder()
class SocketParser { class SocketParser {
private static let shredder = SocketParser.PacketShredder()
// Translation of socket.io-parser#deconstructPacket // Translation of socket.io-parser#deconstructPacket
private class PacketShredder { private class PacketShredder {
var buf = ContiguousArray<NSData>() var buf = ContiguousArray<NSData>()
@ -48,7 +48,7 @@ class SocketParser {
var newDict = NSMutableDictionary(dictionary: dict) var newDict = NSMutableDictionary(dictionary: dict)
for (key, value) in newDict { for (key, value) in newDict {
newDict[key as NSCopying] = shred(value) newDict[key as! NSCopying] = shred(value)
} }
return newDict return newDict
@ -148,7 +148,7 @@ class SocketParser {
let d = String(arr[++i...arr.count-1]) let d = String(arr[++i...arr.count-1])
let noPlaceholders = d["(\\{\"_placeholder\":true,\"num\":(\\d*)\\})"] ~= "\"~~$2\"" let noPlaceholders = d["(\\{\"_placeholder\":true,\"num\":(\\d*)\\})"] ~= "\"~~$2\""
let data = SocketParser.parseData(noPlaceholders) as [AnyObject] let data = SocketParser.parseData(noPlaceholders) as! [AnyObject]
return SocketPacket(type: SocketPacketType(str: type), data: data, return SocketPacket(type: SocketPacketType(str: type), data: data,
nsp: nsp, placeholders: placeholders, id: id) nsp: nsp, placeholders: placeholders, id: id)

View File

@ -43,7 +43,7 @@ public class SwiftRegex: NSObject, BooleanType {
} }
final var targetRange: NSRange { final var targetRange: NSRange {
return NSRange(location: 0,length: countElements(target.utf16)) return NSRange(location: 0,length: count(target.utf16))
} }
final func substring(range: NSRange) -> String? { final func substring(range: NSRange) -> String? {

View File

@ -7,7 +7,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////
import Foundation import Foundation
import CoreFoundation
public protocol WebSocketDelegate: class { public protocol WebSocketDelegate: class {
func websocketDidConnect(socket: WebSocket) func websocketDidConnect(socket: WebSocket)
@ -236,8 +235,8 @@ public class WebSocket : NSObject, NSStreamDelegate {
} }
if self.selfSignedSSL { if self.selfSignedSSL {
let settings: Dictionary<NSObject, NSObject> = [kCFStreamSSLValidatesCertificateChain: NSNumber(bool:false), kCFStreamSSLPeerName: kCFNull] let settings: Dictionary<NSObject, NSObject> = [kCFStreamSSLValidatesCertificateChain: NSNumber(bool:false), kCFStreamSSLPeerName: kCFNull]
inputStream!.setProperty(settings, forKey: kCFStreamPropertySSLSettings) inputStream!.setProperty(settings, forKey: kCFStreamPropertySSLSettings as String)
outputStream!.setProperty(settings, forKey: kCFStreamPropertySSLSettings) outputStream!.setProperty(settings, forKey: kCFStreamPropertySSLSettings as String)
} }
isRunLoop = true isRunLoop = true
inputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode) inputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
@ -247,18 +246,18 @@ public class WebSocket : NSObject, NSStreamDelegate {
let bytes = UnsafePointer<UInt8>(data.bytes) let bytes = UnsafePointer<UInt8>(data.bytes)
outputStream!.write(bytes, maxLength: data.length) outputStream!.write(bytes, maxLength: data.length)
while(isRunLoop) { while(isRunLoop) {
NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate.distantFuture() as NSDate) NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate.distantFuture() as! NSDate)
} }
} }
//delegate for the stream methods. Processes incoming bytes //delegate for the stream methods. Processes incoming bytes
func stream(aStream: NSStream!, handleEvent eventCode: NSStreamEvent) { public func stream(aStream: NSStream, handleEvent eventCode: NSStreamEvent) {
if eventCode == .HasBytesAvailable { if eventCode == .HasBytesAvailable {
if(aStream == inputStream) { if(aStream == inputStream) {
processInputStream() processInputStream()
} }
} else if eventCode == .ErrorOccurred { } else if eventCode == .ErrorOccurred {
disconnectStream(aStream!.streamError) disconnectStream(aStream.streamError)
} else if eventCode == .EndEncountered { } else if eventCode == .EndEncountered {
disconnectStream(nil) disconnectStream(nil)
} }
@ -333,7 +332,7 @@ public class WebSocket : NSObject, NSStreamDelegate {
} }
///Finds the HTTP Packet in the TCP stream, by looking for the CRLF. ///Finds the HTTP Packet in the TCP stream, by looking for the CRLF.
private func processHTTP(buffer: UnsafePointer<UInt8>, bufferLen: Int) -> Bool { private func processHTTP(buffer: UnsafePointer<UInt8>, bufferLen: Int) -> Bool {
let CRLFBytes = [UInt8("\r"), UInt8("\n"), UInt8("\r"), UInt8("\n")] let CRLFBytes = [UInt8(ascii: "\r"), UInt8(ascii: "\n"), UInt8(ascii: "\r"), UInt8(ascii: "\n")]
var k = 0 var k = 0
var totalSize = 0 var totalSize = 0
for var i = 0; i < bufferLen; i++ { for var i = 0; i < bufferLen; i++ {
@ -376,7 +375,7 @@ public class WebSocket : NSObject, NSStreamDelegate {
} }
let cfHeaders = CFHTTPMessageCopyAllHeaderFields(response.takeUnretainedValue()) let cfHeaders = CFHTTPMessageCopyAllHeaderFields(response.takeUnretainedValue())
let headers: NSDictionary = cfHeaders.takeUnretainedValue() let headers: NSDictionary = cfHeaders.takeUnretainedValue()
let acceptKey = headers[headerWSAcceptName] as NSString let acceptKey = headers[headerWSAcceptName] as! NSString
if acceptKey.length > 0 { if acceptKey.length > 0 {
return true return true
} }
@ -500,7 +499,7 @@ public class WebSocket : NSObject, NSStreamDelegate {
data = NSData(bytes: UnsafePointer<UInt8>((buffer+offset)), length: Int(len)) data = NSData(bytes: UnsafePointer<UInt8>((buffer+offset)), length: Int(len))
} }
if receivedOpcode == OpCode.Pong.rawValue { if receivedOpcode == OpCode.Pong.rawValue {
let step = Int(offset+len) let step = offset + Int(len)
let extra = bufferLen-step let extra = bufferLen-step
if extra > 0 { if extra > 0 {
processRawMessage((buffer+step), bufferLen: extra) processRawMessage((buffer+step), bufferLen: extra)
@ -565,7 +564,7 @@ public class WebSocket : NSObject, NSStreamDelegate {
processResponse(response!) processResponse(response!)
} }
let step = Int(offset+len) let step = offset + Int(len)
let extra = bufferLen-step let extra = bufferLen-step
if(extra > 0) { if(extra > 0) {
processExtra((buffer+step), bufferLen: extra) processExtra((buffer+step), bufferLen: extra)
@ -597,9 +596,9 @@ public class WebSocket : NSObject, NSStreamDelegate {
} }
dispatch_async(queue,{ dispatch_async(queue,{
if let textBlock = self.receivedTextBlock{ if let textBlock = self.receivedTextBlock{
textBlock(str!) textBlock(str! as String)
} }
self.delegate?.websocketDidReceiveMessage(self, text: str!) self.delegate?.websocketDidReceiveMessage(self, text: str! as String)
}) })
} else if response.code == .BinaryFrame { } else if response.code == .BinaryFrame {
let data = response.buffer! //local copy so it is perverse for writing let data = response.buffer! //local copy so it is perverse for writing
@ -673,7 +672,7 @@ public class WebSocket : NSObject, NSStreamDelegate {
} }
buffer[1] |= self.MaskMask buffer[1] |= self.MaskMask
var maskKey = UnsafeMutablePointer<UInt8>(buffer + offset) var maskKey = UnsafeMutablePointer<UInt8>(buffer + offset)
SecRandomCopyBytes(kSecRandomDefault, UInt(sizeof(UInt32)), maskKey) SecRandomCopyBytes(kSecRandomDefault, Int(sizeof(UInt32)), maskKey)
offset += sizeof(UInt32) offset += sizeof(UInt32)
for (var i = 0; i < dataLength; i++) { for (var i = 0; i < dataLength; i++) {