Swift-ActionCableClient alternatives and similar libraries
Based on the "WebSocket" category.
Alternatively, view Swift-ActionCableClient alternatives based on common mentions on social networks and blogs.
-
SwiftyTask
An extreme queuing system with high performance for managing all task in app with closure
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Swift-ActionCableClient or a related project?
README
ActionCableClient
ActionCable is a new WebSockets server being released with Rails 5 which makes it easy to add real-time features to your app. This Swift client makes it dead-simple to connect with that server, abstracting away everything except what you need to get going.
Installation
To install, simply:
Cocoapods
Add the following line to your Podfile
and run pod install
pod "ActionCableClient"
Carthage
Add the following to your Cartfile
and run carthage update
as normal.
github "danielrhodes/Swift-ActionCableClient"
Usage
Get Started & Connect
import ActionCableClient
self.client = ActionCableClient(url: URL(string: "ws://domain.tld/cable")!)
// Connect!
client.connect()
client.onConnected = {
print("Connected!")
}
client.onDisconnected = {(error: Error?) in
print("Disconnected!")
}
Subscribe to a Channel
// Create the Room Channel
let roomChannel = client.create("RoomChannel") //The channel name must match the class name on the server
// More advanced usage
let room_identifier = ["room_id" : identifier]
let roomChannel = client.create("RoomChannel", identifier: room_identifier, autoSubscribe: true, bufferActions: true)
Channel Callbacks
// Receive a message from the server. Typically a Dictionary.
roomChannel.onReceive = { (JSON : Any?, error : ErrorType?) in
print("Received", JSON, error)
}
// A channel has successfully been subscribed to.
roomChannel.onSubscribed = {
print("Yay!")
}
// A channel was unsubscribed, either manually or from a client disconnect.
roomChannel.onUnsubscribed = {
print("Unsubscribed")
}
// The attempt at subscribing to a channel was rejected by the server.
roomChannel.onRejected = {
print("Rejected")
}
Perform an Action on a Channel
// Send an action
roomChannel["speak"](["message": "Hello, World!"])
// Alternate less magical way:
roomChannel.action("speak", ["message": "Hello, World!"])
// Note: The `speak` action must be defined already on the server
Authorization & Headers
// ActionCable can be picky about origins, so if you
// need it can be set here.
client.origin = "https://domain.tld/"
// If you need any sort of authentication, you
// will not have cookies like you do in the browser,
// so set any headers here.
//
// These are available in the `Connection`
// on the server side.
client.headers = [
"Authorization": "sometoken"
]
Misc
client.onPing = {
}
For more documentation, see the wiki
Requirements
Starscream: The underlying WebSocket library.
Author
Daniel Rhodes, [email protected]
License
ActionCableClient is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the Swift-ActionCableClient README section above
are relevant to that project's source code only.