API Change: rename methods, add typealias. Update README
This commit is contained in:
parent
4b5d06f39a
commit
368a9c8af3
49
README.md
49
README.md
@ -9,15 +9,25 @@ Installation
|
|||||||
2. Create a bridging header for SocketRocket
|
2. Create a bridging header for SocketRocket
|
||||||
3. Copy the SwiftIO folder into your xcode project
|
3. Copy the SwiftIO folder into your xcode project
|
||||||
|
|
||||||
Use
|
API
|
||||||
===
|
===
|
||||||
|
Constructor
|
||||||
|
-----------
|
||||||
|
`init(socketURL: String, opts[String: AnyObject]? = nil)` - Constructs a new client for the given URL. opts can be omitted (will use default values.)
|
||||||
Methods
|
Methods
|
||||||
-------
|
-------
|
||||||
1. `socket.on(name:String, callback:((data:AnyObject?) -> Void))` - Adds a handler for an event.
|
1. `socket.on(name:String, callback:((data:AnyObject?) -> Void))` - Adds a handler for an event.
|
||||||
2. `socket.onMultipleArgs(name:String, callback:((data:[AnyObject]) -> Void))` - Adds a handler for an event that can have multiple items. Items are stored in an array.
|
2. `socket.onMultipleItems(name:String, callback:((data:AnyObject...) -> Void))` - Adds a handler for an event that can have multiple items. Items are stored in an array.
|
||||||
3. `socket.emit(event:String, args:AnyObject...)` - Sends a message. Can send multiple args.
|
3. `socket.emit(event:String, args:AnyObject...)` - Sends a message. Can send multiple args.
|
||||||
4. `socket.connect()` - Establishes a connection to the server. A "connect" event is fired upon successful connection.
|
4. `socket.connect()` - Establishes a connection to the server. A "connect" event is fired upon successful connection.
|
||||||
5. `socket.close()` - Closes the socket. Once a socket is closed it should not be reopened.
|
5. `socket.close()` - Closes the socket. Once a socket is closed it should not be reopened.
|
||||||
|
|
||||||
|
Events
|
||||||
|
------
|
||||||
|
1. `connect` - Emitted when on a successful connection.
|
||||||
|
2. `disconnect` - Emitted when the connection is closed.
|
||||||
|
3. `reconnect` - Emitted when the connection is starting to reconnect.
|
||||||
|
4. `reconnectAttempt` - Emitted when attempting to reconnect.
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
// opts can be omitted, will use default values
|
// opts can be omitted, will use default values
|
||||||
@ -27,21 +37,20 @@ let socket = SocketIOClient(socketURL: "https://localhost:8080", opts: [
|
|||||||
"reconnectWait": 5 // default 10
|
"reconnectWait": 5 // default 10
|
||||||
])
|
])
|
||||||
|
|
||||||
|
// Socket Events
|
||||||
socket.on("connect") {data in
|
socket.on("connect") {data in
|
||||||
println("socket connected")
|
println("socket connected")
|
||||||
|
|
||||||
// Sending messages
|
// Sending messages
|
||||||
socket.emit("testEcho")
|
socket.emit("testEcho")
|
||||||
|
|
||||||
socket.emit("testObject", [
|
socket.emit("testObject", [
|
||||||
"data": true
|
"data": true
|
||||||
])
|
])
|
||||||
socket.emit("arrayTest", [1, true, "test", ["test": "test"], data, data])
|
|
||||||
socket.emit("stringTest", "stringTest")
|
|
||||||
socket.emit("intTest", 1)
|
|
||||||
|
|
||||||
// Sending multiple args per message
|
// Sending multiple items per message
|
||||||
socket.emit("multTest", [data], 1.4, 1, "true",
|
socket.emit("multTest", [1], 1.4, 1, "true",
|
||||||
true, ["test": data], data)
|
true, ["test": "foo"], "bar")
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.on("disconnect") {data in
|
socket.on("disconnect") {data in
|
||||||
@ -61,6 +70,7 @@ socket.on("reconnectAttempt") {data in
|
|||||||
println(triesLeft)
|
println(triesLeft)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// End Socket Events
|
||||||
|
|
||||||
socket.on("jsonTest") {data in
|
socket.on("jsonTest") {data in
|
||||||
if let json = data as? NSDictionary {
|
if let json = data as? NSDictionary {
|
||||||
@ -68,31 +78,18 @@ socket.on("jsonTest") {data in
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.on("boolTest") {data in
|
|
||||||
if let bool = data as? Bool {
|
|
||||||
println(bool) // true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
socket.on("arrayTest") {data in
|
|
||||||
if let array = data as? NSArray {
|
|
||||||
println(array[0]) // 2
|
|
||||||
println(array[1]) // "test"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Messages that have multiple items are passed
|
// Messages that have multiple items are passed
|
||||||
// by an array
|
// by an array
|
||||||
socket.onMultipleArgs("multipleItems") {datas in
|
socket.onMultipleItems("multipleItems") {data in
|
||||||
if let str = datas[0] as? String {
|
if let str = data[0] as? String {
|
||||||
println(str)
|
println(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let arr = datas[1] as? [Int] {
|
if let arr = data[1] as? [Int] {
|
||||||
println(arr)
|
println(arr)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let obj = datas[4] as? NSDictionary {
|
if let obj = data[4] as? NSDictionary {
|
||||||
println(obj["test"])
|
println(obj["test"])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,24 +24,24 @@
|
|||||||
|
|
||||||
class SocketEventHandler {
|
class SocketEventHandler {
|
||||||
let event:String!
|
let event:String!
|
||||||
let callback:((data:AnyObject?) -> Void)!
|
let callback:NormalCallback!
|
||||||
let callbackMult:((data:[AnyObject]) -> Void)!
|
let callbackMult:MultipleCallback!
|
||||||
|
|
||||||
init(event:String, callback:((data:AnyObject?) -> Void)) {
|
init(event:String, callback:NormalCallback) {
|
||||||
self.event = event
|
self.event = event
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
}
|
}
|
||||||
|
|
||||||
init(event:String, callback:((data:[AnyObject]) -> Void)) {
|
init(event:String, callback:MultipleCallback) {
|
||||||
self.event = event
|
self.event = event
|
||||||
self.callbackMult = callback
|
self.callbackMult = callback
|
||||||
}
|
}
|
||||||
|
|
||||||
func executeCallback(args:AnyObject?) {
|
func executeCallback(item:AnyObject?) {
|
||||||
callback(data: args)
|
callback(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
func executeCallback(args:[AnyObject]) {
|
func executeCallback(items:[AnyObject]) {
|
||||||
callbackMult(data: args)
|
callbackMult(items)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -24,6 +24,9 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
typealias NormalCallback = (AnyObject?) -> Void
|
||||||
|
typealias MultipleCallback = (AnyObject...) -> Void
|
||||||
|
|
||||||
class SocketIOClient: NSObject, SRWebSocketDelegate {
|
class SocketIOClient: NSObject, SRWebSocketDelegate {
|
||||||
let socketURL:String!
|
let socketURL:String!
|
||||||
private let secure:Bool!
|
private let secure:Bool!
|
||||||
@ -190,13 +193,13 @@ class SocketIOClient: NSObject, SRWebSocketDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Adds handler for single arg message
|
// Adds handler for single arg message
|
||||||
func on(name:String, callback:((data:AnyObject?) -> Void)) {
|
func on(name:String, callback:NormalCallback) {
|
||||||
let handler = SocketEventHandler(event: name, callback: callback)
|
let handler = SocketEventHandler(event: name, callback: callback)
|
||||||
self.handlers.append(handler)
|
self.handlers.append(handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adds handler for multiple arg message
|
// Adds handler for multiple arg message
|
||||||
func onMultipleArgs(name:String, callback:((data:[AnyObject]) -> Void)) {
|
func onMultipleItems(name:String, callback:MultipleCallback) {
|
||||||
let handler = SocketEventHandler(event: name, callback: callback)
|
let handler = SocketEventHandler(event: name, callback: callback)
|
||||||
self.handlers.append(handler)
|
self.handlers.append(handler)
|
||||||
}
|
}
|
||||||
@ -463,7 +466,6 @@ class SocketIOClient: NSObject, SRWebSocketDelegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sends ping
|
|
||||||
func sendPing() {
|
func sendPing() {
|
||||||
if self.connected {
|
if self.connected {
|
||||||
self.io?.send("2")
|
self.io?.send("2")
|
||||||
@ -514,7 +516,6 @@ class SocketIOClient: NSObject, SRWebSocketDelegate {
|
|||||||
|
|
||||||
// Called when a message is recieved
|
// Called when a message is recieved
|
||||||
func webSocket(webSocket:SRWebSocket!, didReceiveMessage message:AnyObject?) {
|
func webSocket(webSocket:SRWebSocket!, didReceiveMessage message:AnyObject?) {
|
||||||
// println(message)
|
|
||||||
self.parseSocketMessage(message: message)
|
self.parseSocketMessage(message: message)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -540,6 +541,7 @@ class SocketIOClient: NSObject, SRWebSocketDelegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called when an error occurs.
|
||||||
func webSocket(webSocket:SRWebSocket!, didFailWithError error:NSError!) {
|
func webSocket(webSocket:SRWebSocket!, didFailWithError error:NSError!) {
|
||||||
self.pingTimer?.invalidate()
|
self.pingTimer?.invalidate()
|
||||||
self.connected = false
|
self.connected = false
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user