socket.io-client-swift

by socketio

4.3K Stars 653 Forks Last release: 11 months ago (v15.2.0) Other 1.7K Commits 154 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Build Status

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
    socket.emit("update", ["amount": cur + 2.50])
}

ack.with("Got your currentAmount", "dude")

}

socket.connect()

Objective-C Example

@import SocketIO;

NSURL* url = [[NSURL alloc] initWithString:@"http://localhost:8080"]; SocketManager* manager = [[SocketManager alloc] initWithSocketURL:url config:@{@"log": @YES, @"compress": @YES}]; SocketIOClient* socket = manager.defaultSocket;

[socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) { NSLog(@"socket connected"); }];

[socket on:@"currentAmount" callback:^(NSArray* data, SocketAckEmitter* ack) { double cur = [[data objectAtIndex:0] floatValue];

[[socket emitWithAck:@"canUpdate" with:@[@(cur)]] timingOutAfter:0 callback:^(NSArray* data) {
    [socket emit:@"update" with:@[@{@"amount": @(cur + 2.50)}]];
}];

[ack with:@[@"Got your currentAmount, ", @"dude"]];

}];

[socket connect];

Features

  • Supports socket.io 2.0+ (For socket.io 1.0 use v9.x)
  • Supports binary
  • Supports Polling and WebSockets
  • Supports TLS/SSL
  • Can be used from Objective-C

FAQS

Checkout the FAQs for commonly asked questions.

Checkout the 12to13 guide for migrating to v13+ from v12 below.

Installation

Requires Swift 4/5 and Xcode 10.x

If you need Swift 2.3 use the swift2.3 tag (Pre-Swift 4 support is no longer maintained)

If you need Swift 3.x use v11.1.3.

Swift Package Manager

Add the project as a dependency to your Package.swift: ```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:

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

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.