Rainbow 1.1.4

Rainbow 1.1.4

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release May 2015

Maintained by javen macbook air.



 
Depends on:
SocketRocket_Javen= 0.3.2
Reachability~> 3.2
 

Rainbow 1.1.4

  • By
  • 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-jave

rainbow-js