彩虹 1.1.4

Rainbow 1.1.4

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年5月

javen macbook air维护。



 
依赖
SocketRocket_Javen= 0.3.2
Reachability~> 3.2
 

Rainbow 1.1.4

  • 作者
  • Javen_liu

rainbow-objective-c

简介

RainBow是一个基于websocket的支持多种QOS的消息转发服务器及客户端SDK。使用RainBow可以让您业务逻辑与链接管理完美的分离开来,且可以继续使用您最熟悉的方式(HTTP)来接入业务逻辑。以下是概览图,绿色部分为RainBow的组成部份:

快速集成

pod 'Rainbow' ~> '1.1.3'

简单使用SDK

1.连接

//websock host的一般形式 ws://host:port
[[RainbowEngine defaultEngine] connectWebSocketHost:@"host"];

2.设置delegate

[RainbowEngine defaultEngine].delegate = self;

3.发送消息

发送QOS=0请求(不会收到服务器回应)

- (void)sendMessageQosNoneAndMsgType:(UInt16)msgType content:(NSString *)content;

发送QOS=1请求

[RainbowEngine defaultEngine] sendMessageQosLeastOneAndMsgType:1 content:@"test" success:^(UInt16 msgType, NSString *content) {

} failure:^(NSError *error) {

}]

发送QOS=2请求

[RainbowEngine defaultEngine] sendMessageQosMostOneAndMsgType:1 content:@"test" success:^(UInt16 msgType, NSString *content) {

} failure:^(NSError *error) {

}]

自定义请求

[[RainbowEngine defaultEngine] sendMessageWithQos:RBQosMostOne mesType:1 content:@"test" timeout:15 success:^(UInt16 msgType, NSString *content) {

} failure:^(NSError *error) {

}];

4.接收消息

- (void) rainbowEngine:(RainbowEngine *)engine didReceiveMsgType:(UInt16)type content:(NSString *)content {

}

5.断开连接

[[RainbowEngine defaultEngine] close];

其他功能

1.自定义请求头(如:身份验证,权限验证等),需要实现下面的方法

- (NSDictionary *)headerDictForWebSocketRequest {
    NSMutableDictionary *headers = [NSMutableDictionary dictionary];
    return headers;
}

2.监听Rainbow状态

- (void)rainbowDidConnectSuccess:(RainbowEngine *)rainbow;
- (void)rainbowDidConnectWaiting:(RainbowEngine *)rainbow;
- (void)rainbow:(RainbowEngine *)rainbow didCloseWithCode:(NSInteger)code reason:(NSString *)reason;

3.设置Rainbow工作线程和回调线程

- (void)connectWebSocketHost:(NSString *)webSocketHost rainbowDispatchQueue:(dispatch_queue_t)rainbowDispatchQueue;
- (void)connectWebSocketHost:(NSString *)webSocketHost delegateDispatchQueue:(dispatch_queue_t)delegateDispatchQueue;
- (void)connectWebSocketHost:(NSString *)webSocketHost rainbowDispatchQueue:(dispatch_queue_t)rainbowDispatchQueue delegateDispatchQueue:(dispatch_queue_t)delegateDispatchQueue;

其他版本的链接

rainbow-python

rainbow-java

rainbow-js