An iOS & OS X WebSockets client for use with Phoenix Channels. Supports Phoenix Presence!
import Birdsong
…
let socket = Socket(url: NSURL(string: "http://localhost:4000/socket/websocket")!)
socket.onConnect = {
let channel = self.socket.channel("rooms:some-topic", payload: ["user": "spartacus"])
channel.on("new:msg", callback: { message in
self.displayMessage(message)
})
channel.join().receive("ok", callback: { payload in
print("Successfully joined: \(channel.topic)")
})
channel.send("new:msg", payload: ["body": "Hello!"])
.receive("ok", callback: { response in
print("Sent a message!")
})
.receive("error", callback: { reason in
print("Message didn't send: \(reason)")
})
// Presence support.
channel.presence.onStateChange = { newState in
// newState = dict where key = unique ID, value = array of metas.
print("New presence state: \(newState)")
}
channel.presence.onJoin = { id, meta in
print("Join: user with id \(id) with meta entry: \(meta)")
}
channel.presence.onLeave = { id, meta in
print("Leave: user with id \(id) with meta entry: \(meta)")
}
}
To run the example project, clone the repo, and run pod install
from the Example directory first.
Available on CocoaPods:
platform :ios, '9.0'
use_frameworks!
pod 'Birdsong', '~> 0.2'
Simon Manning — sjrmanning@github
Birdsong is available under the MIT license. See the LICENSE file for more info.