Skip to content

An iOS socker client for handling multiple channels on a single websocket connection

License

Notifications You must be signed in to change notification settings

5monkeys/socker-ios

Repository files navigation

Socker iOS client

Build Status

An iOS client for communicating with a socker websocket server which supports subscribing on multiple channels on a single connection. It is based on the very good SocketRocket library.

Installation

Add the following to your Podfile and run pod install

pod 'FMSocker'

Usage

Import the library:

#import <FMSocker/FMSocker.h>

Initiate the client with a url to your socker server:

FMSockerClient *sockerClient = [[FMSockerClient alloc] initWithURL:[NSURL URLWithString:@"wss://example.com"]];

// Connect to the server
[sockerClient connect];

Subscribe on channels:

// Subscribe on foo channel
[sockerClient subscribeOnChannel:@"foo"
                       onMessage:^(FMSockerMessage *message, NSError *error){
                           if (!error) {
                               NSLog(@"Got message on channel %@ with payload %@", message.name, message.data);
                           } else {
                               NSLog(@"Failed to parse message %@", [error localizedDescription]);
                           }
                       }];
// Subscribe on bar channel
[sockerClient subscribeOnChannel:@"bar"
                       onMessage:^(FMSockerMessage *message, NSError *error){
                           if (!error) {
                               NSLog(@"Got message on channel %@ with payload %@", message.name, message.data);
                           } else {
                               NSLog(@"Failed to parse message %@", [error localizedDescription]);
                           }
                       }];

Send messages:

// Create a socker message
FMSockerMessage *message = [[FMSockerMessage alloc] initWithName:@"testchannel" andData:@[ @"foo", @"bar" ]];

// Initiate the client with a url to your socker server
FMSockerClient *sockerClient = [[FMSockerClient alloc] initWithURL:[NSURL URLWithString:@"wss://example.com"]];

// Connect to the server
[sockerClient connect];

// Send the message
NSError *error;
[sockerClient sendSockerMessage:message error:&error];

Unsubscribe channels:

// Unsubscribe channel named foo
[sockerClient unsubscribeChannel:@"foo"];

Unsubscribe all channels:

[sockerClient unsubscribeAll];

Disconnect websocket:

[sockerClient disconnect];

About

An iOS socker client for handling multiple channels on a single websocket connection

Resources

License

Stars

Watchers

Forks

Packages

No packages published