Erik Little 04e90fc905
Merge branch 'development'
* development:
  Bump starscream and remove cocoaseeds from readme
  update module file
  Change starscream branch
  Remove old version language
  correct version is 11.1.1
  Fix SPM and bump version
  Update starscream version in readme
  grammar
  Update comment
  Use errors in parsing method
  Rename directory to SocketIO
  work on podspec
  faq doesn't need to be in the project
  Reorganize files
  Add faqs page
2017-08-31 18:33:44 -04:00
2017-08-29 09:15:38 -04:00
2017-05-06 14:41:50 -04:00
2017-08-29 09:17:04 -04:00
2017-03-28 05:03:14 -04:00
2015-03-12 19:59:49 +09:00
2017-07-16 10:54:46 -04:00

Build Status

Socket.IO-Client-Swift

Socket.IO-client for iOS/OS X.

Example

import SocketIO

let socket = SocketIOClient(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .compress])

socket.on(clientEvent: .connect) {data, ack in
    print("socket connected")
}

socket.on("currentAmount") {data, ack in
    if let cur = data[0] as? Double {
        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"];
SocketIOClient* socket = [[SocketIOClient alloc] initWithSocketURL:url config:@{@"log": @YES, @"compress": @YES}];

[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.

Installation

Requires Swift 3/Xcode 8.x

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

If you need swift 2.2 use 7.x.

If you need Swift 2.1 use v5.5.0.

If you need Swift 1.2 use v2.4.5.

If you need Swift 1.1 use v1.5.2.

Swift Package Manager

Add the project as a dependency to your Package.swift:

import PackageDescription

let package = Package(
    name: "YourSocketIOProject",
    dependencies: [
        .Package(url: "https://github.com/socketio/socket.io-client-swift", majorVersion: 11)
    ]
)

Then import import SocketIO.

Carthage

Add these line to your Cartfile:

github "nuclearace/Starscream" ~> 8.0.5
github "socketio/socket.io-client-swift" ~> 11.1.2 # Or latest version

Run carthage update --platform ios,macosx.

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', '~> 11.1.2' # Or latest version
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

Description
No description provided
Readme Multiple Licenses 4.2 MiB
Languages
Swift 99.3%
Ruby 0.5%
Objective-C 0.2%