Giter Site home page Giter Site logo

socket.io-client-swift's Introduction

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

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 (Pre-Swift 3 support is no longer maintained)

If you need Swift 2.1 use v5.5.0 (Pre-Swift 2.2 support is no longer maintained)

If you need Swift 1.2 use v2.4.5 (Pre-Swift 2 support is no longer maintained)

If you need Swift 1.1 use v1.5.2. (Pre-Swift 1.2 support is no longer maintained)

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.1
github "socketio/socket.io-client-swift" ~> 11.0.0 # 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.0.0' # Or latest version
end

Install pods:

$ pod install

Import the module:

Swift:

import SocketIO

Objective-C:

@import SocketIO;

CocoaSeeds

Add this line to your Seedfile:

github "socketio/socket.io-client-swift", "v11.0.0", :files => "Source/*.swift" # Or latest version

Run seed install.

Detailed Example

A more detailed example can be found here

An example using the Swift Package Manager can be found here

License

MIT

socket.io-client-swift's People

Contributors

nuclearace avatar nachosoto avatar kevinmartin avatar naderio avatar yannickl avatar aputinski avatar davbeck avatar drekka avatar alevinru avatar hankbao avatar tbaranes avatar mephi1984 avatar banjun avatar musicabbage avatar bingfengzhu avatar callumoz avatar dickverbunt avatar hfossli avatar cfkevinref avatar craigkj312 avatar atlcto avatar philipengberg avatar jtjacka avatar mathieurobidoux avatar ramki982 avatar

Watchers

James Cloos avatar Mark avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.