Socket.IO-client for iOS/OS X.
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()
- Supports Socket.IO server 2.0 /3.0 /4.0 (see the compatibility table)
- Supports Binary
- Supports Polling and WebSockets
- Supports TLS/SSL
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.
Requires Swift 4/5 and Xcode 10.x
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
.
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.
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;
A more detailed example can be found here
An example using the Swift Package Manager can be found here
MIT