Need help with Birdsong?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

sjrmanning
127 Stars 37 Forks MIT License 64 Commits 8 Opened issues

Description

:bird::musical_score: Swift WebSockets client for Phoenix Channels.

Services available

!
?

Need anything else?

Contributors list

# 161,016
Objecti...
Shell
zettelk...
Swift
37 commits
# 53,142
Swift
Xcode
Linux
swift-f...
4 commits
# 377,639
Swift
websock...
phoenix
Objecti...
3 commits
# 11,139
Swift
iOS
swift-f...
ios-ani...
2 commits
# 463,369
Elixir
iOS
Erlang
Lua
1 commit
# 170,601
Objecti...
websock...
phoenix
JavaScr...
1 commit

Birdsong: Phoenix Channels WebSockets client for iOS & OS X

Birdsong

An iOS & OS X WebSockets client for use with Phoenix Channels. Supports Phoenix Presence!

As of version 0.3.0, Birdsong requires Swift 3.0+. Please use version 0.2.2 if you need Swift 2.2 support.

Version 0.6 onwards supports Swift 4 using Starscream 3.0.

Usage

import Birdsong

// In your view controller / client let socket = Socket(url: NSURL(string: "http://localhost:4000/socket/websocket")!, params: ["key": "secret"])

socket.onConnect = { let channel = self.socket.channel("rooms:some-topic", payload: ["user": "spartacus"]) channel.on("new:msg", callback: { message in print("New message: (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)")
}

}

socket.connect()

Example

To run the example project, clone the repo, and run

pod install
from the Example directory first, then use the Birdsong.xcworkspace Xcode workspace. The example is configured to work directly with the Phoenix Chat Example. It simply connects to
localhost:4000
, joins the
rooms:lobby
channel, and logs each received message. The “Send message” button will send a message to the channel with an incrementing count.

Installation

Available on CocoaPods:

platform :ios, '9.0'
use_frameworks!

pod 'Birdsong', '~> 0.6'

If you need Swift 2.2 compatibility, please use version

0.2.2
.

Author

Simon Manning — [email protected]

License

Birdsong is available under the MIT license. See the LICENSE file for more info.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.