SocketClusteriOS 0.3.2

SocketClusteriOS 0.3.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年3月

李涵维护。



  • 作者
  • 李涵

socketcluster-client-ios

SocketCluster的原生iOS客户端

该项目处于测试阶段。

设置

子项目

  1. 将此项目作为子项目拖到您的项目中
  2. 将此项目设置为由构建依赖关系
  3. 导入头文件#import <SocketClusteriOS/SocketCluster.h>

静态库

  1. libSocketClusteriOS.aSocketCluster.hSocketClusterDelegate.hSocketClusteriOSBundle.bundle添加到您的项目中。
  2. 通过#import <SocketClusteriOS/SocketCluster.h>导入模块
  3. 在头文件中,与协议<SocketClusterDelegate>冲突,例如@interface ViewController : UIViewController <SocketClusterDelegate>
  4. 初始化模块并将其委托设置为self。 SocketCluster *sc = [[SocketCluster alloc] init]; sc.delegate = self; //Self

连接到主机

[socketCluster connectToHost:@"127.0.0.1" onPort:8000 securly:NO];

从主机断开连接

[socketCluster disconnect];

获取连接状态

[socketCluster getState];

监听事件

确保您已实现协议<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];
    }
}

发射事件

data可以是任何格式,但它们应该是可序列化的[socketCluster emitEvent:@"eventName" WithData:data];

订阅频道

[socketCluster subscribeToChannel:@"channelName"];

取消订阅频道

[socketCluster unsubscribeFromChannel:@"channelName"];

向频道发布

data 可以是任何格式 [socketCluster publishToChannel:@"channelName" WithData:data];

监听 channelEvents (在 JS 客户端中使用 watch

确保您已实现协议<SocketClusterDelegate>

- (void)socketclusterChannelReceivedEvent:(NSString *)channel WithData:(NSDictionary *)data
{
    if ([@"pong" isEqualToString:channel]) {
        [self logMessage:[NSString stringWithFormat:@"Channel %@ received message %@", channel, data[@"data"]]];
    }

}

获取所有订阅列表

NSArray * subscriptions = [socketCluster getSubscriptions];

获取包括待定订阅的所有订阅列表

NSArray * subscriptions = [socketCluster getSubscriptionsIncludingPending];

一些其他有用的回调函数

所有这些回调只有在您实现了协议 <SocketClusterDelegate> 才会工作

- (void)socketClusterDidConnect
{
    [self logMessage:@"Connected"];
}
- (void)socketClusterDidDisconnect
{
    [self logMessage:@"Disconnected"];
}
- (void)socketClusterOnError
{
    [self logMessage:@"Error"];
}