socket.io-client-swift alternatives and similar libraries
Based on the "WebSocket" category.
Alternatively, view Socket.IO alternatives based on common mentions on social networks and blogs.
-
SocketRocket
A conforming Objective-C WebSocket client library. -
SwiftSocket
The easy way to use sockets on Apple platforms -
SwiftWebSocket
High performance WebSocket client library for Swift, iOS and OSX. -
Socks
๐ Non-blocking TCP socket layer, with event-driven server and client. -
Swift-ActionCableClient
ActionCable is a new WebSocket 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. -
Chronos-Swift
:hourglass: Grand Central Dispatch Utilities -
Me
A super slim solution to the nested asynchronous computations -
SwifterSockets
A collection of socket utilities in Swift. -
DNWebSocket
WebSocket(RFC-6455) library written using Swift -
SwiftyTask
An extreme queuing system with high performance for managing all task in app with closure
Appwrite - The Open Source Firebase alternative introduces iOS support
* 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 socket.io-client-swift or a related project?
README
Socket.IO-Client-Swift
Socket.IO-client for iOS/OS X.
Example
import SocketIO
let manager = SocketManager(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .compress])
let socket = manager.defaultSocket
socket.on(clientEvent: .connect) {data, ack in
print("socket connected")
}
socket.on("currentAmount") {data, ack in
guard let cur = data[0] as? Double else { return }
socket.emitWithAck("canUpdate", cur).timingOut(after: 0) {data in
if data.first as? String ?? "passed" == SocketAckValue.noAck {
// Handle ack timeout
}
socket.emit("update", ["amount": cur + 2.50])
}
ack.with("Got your currentAmount", "dude")
}
socket.connect()
Features
- Supports Socket.IO server 2.0+/3.0+/4.0+ (see the compatibility table)
- Supports Binary
- Supports Polling and WebSockets
- Supports TLS/SSL
FAQS
Checkout the FAQs for commonly asked questions.
Checkout the 12to13 guide for migrating to v13+ from v12 below.
Checkout the 15to16 guide for migrating to v16+ from v15.
Installation
Requires Swift 4/5 and Xcode 10.x
Swift Package Manager
Add the project as a dependency to your Package.swift:
// swift-tools-version:4.2
import PackageDescription
let package = Package(
name: "socket.io-test",
products: [
.executable(name: "socket.io-test", targets: ["YourTargetName"])
],
dependencies: [
.package(url: "https://github.com/socketio/socket.io-client-swift", .upToNextMinor(from: "15.0.0"))
],
targets: [
.target(name: "YourTargetName", dependencies: ["SocketIO"], path: "./Path/To/Your/Sources")
]
)
Then import import SocketIO
.
Carthage
Add this line to your Cartfile
:
github "socketio/socket.io-client-swift" ~> 15.2.0
Run carthage update --platform ios,macosx
.
Add the Starscream
and SocketIO
frameworks to your projects and follow the usual Carthage process.
CocoaPods 1.0.0 or later
Create Podfile
and add pod 'Socket.IO-Client-Swift'
:
use_frameworks!
target 'YourApp' do
pod 'Socket.IO-Client-Swift', '~> 15.2.0'
end
Install pods:
$ pod install
Import the module:
Swift:
import SocketIO
Objective-C:
@import SocketIO;
Docs
Detailed Example
A more detailed example can be found here
An example using the Swift Package Manager can be found here
License
MIT
*Note that all licence references and agreements mentioned in the socket.io-client-swift README section above
are relevant to that project's source code only.