Skip to content
This repository was archived by the owner on Aug 5, 2019. It is now read-only.

Repository files navigation

socketcluster-client-ios

Native iOS client for SocketCluster

The project is in beta. If you have issues with this client, there are others to choose from: https://github.com/socketcluster/client-drivers#list-of-clients

Setup

Cocoapods

Podfile

platform :ios, '8.0'
pod 'SocketClusteriOS', '0.3'

Run pod install, you are all set.

Notice: Do not use use_frameworks! in Podfile, it will put the bundle in frameworks folder to cause incorrect path issue. If you need to use this, please consider to send a pull request.

Subproject

  1. Drag this project into your project as subproject
  2. Setup this project as build dependency
  3. Import the header files #import <SocketClusteriOS/SocketCluster.h>

Static Library

  1. Add libSocketClusteriOS.a, SocketCluster.h and SocketClusterDelegate.h and SocketClusteriOSBundle.bundle to your project.
  2. Import the module by #import <SocketClusteriOS/SocketCluster.h>
  3. In the header file, confront to the protocol <SocketClusterDelegate>, eg. @interface ViewController : UIViewController <SocketClusterDelegate>
  4. Initialize the module and set the delegate to self.
 SocketCluster *sc = [[SocketCluster alloc] init];
sc.delegate = self; //Self ```
### Connect to host
``[socketCluster connectToHost:@"127.0.0.1" onPort:8000 securly:NO];``
### Disconnect to host
``[socketCluster disconnect];``
### Get state of a connection
``[socketCluster getState];``
### Listen to an event
Make sure you have implemented protocol ``<SocketClusterDelegate>``
  • (void)socketClusterReceivedEvent:(NSString *)eventName WithData:(NSDictionary *)data; { if ([@"rand" isEqualToString:eventName]) { NSArray *positiveFaces = @[@";p", @":D", @":)", @":3", @";)"]; NSNumber *index = data[@"rand"]; NSString *face = [positiveFaces objectAtIndex:[index intValue]]; NSString *msg = [NSString stringWithFormat:@"rand event received: %@", face]; [self logMessage:msg]; } }

### Emit an event
``data`` can be any format, but they should be serializable
``[socketCluster emitEvent:@"eventName" WithData:data];``
### Subscribe to a channel
``[socketCluster subscribeToChannel:@"channelName"];``
### Unsubscribe to a channel
``[socketCluster unsubscribeFromChannel:@"channelName"];``
### Publish to a channel
``data`` can be in any format
``[socketCluster publishToChannel:@"channelName" WithData:data];``
### Listen to channelEvents (``watch`` in JS client)
Make sure you have implemented protocol ``<SocketClusterDelegate>``
  • (void)socketclusterChannelReceivedEvent:(NSString *)channel WithData:(NSDictionary *)data { if ([@"pong" isEqualToString:channel]) { [self logMessage:[NSString stringWithFormat:@"Channel %@ received message %@", channel, data[@"data"]]]; }

}


### Get list of all subscriptions
``NSArray * subscriptions = [socketCluster getSubscriptions];``
### Get list of all subscriptions including pending subscriptions
``NSArray * subscriptions = [socketCluster getSubscriptionsIncludingPending];``
### Some other useful callbacks
All these callback would only work if you have implemented protocol ``<SocketClusterDelegate>``
  • (void)socketClusterDidConnect { [self logMessage:@"Connected"]; }
  • (void)socketClusterDidDisconnect { [self logMessage:@"Disconnected"]; }
  • (void)socketClusterOnError { [self logMessage:@"Error"]; }

About

Native iOS client for SocketCluster

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages