美文网首页iOS Development
iOS SocketRocket使用

iOS SocketRocket使用

作者: 屈涯 | 来源:发表于2018-01-08 15:35 被阅读1458次

iOS SocketRocket
一、简单介绍
SocketRocket是一个WebSocket客户端(WebSocket是适用于Web应用的下一代全双工通讯协议,被成为“Web的TCP”,它实现了浏览器与服务器的双向通信),采用Object-C编写。SocketRocket遵循最新的WebSocket规范RFC 6455。
二、如何使用
• socketRocket 支持pod,因此直接添加然后install
• 引入头文件

#import "SocketRocket.h"

• 遵循代理.

@interface HFSocketRocketViewController ()<SRWebSocketDelegate>

三、初始化SocketRocket

    __weak HFSocketRocketViewController *weakSelf = self;
    //Url
    NSURL *url = [NSURL URLWithString:STOCK_SMALL];
    //请求
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    //初始化请求`
    weakSelf.webSocket = [[SRWebSocket alloc] initWithURLRequest:request];
    //代理协议`
    weakSelf.webSocket.delegate = self;`
    // 实现这个 SRWebSocketDelegate 协议啊`
    //直接连接`
    [weakSelf.webSocket open];    // open 就是直接连接了
 **三、实现代理**
- (void)webSocketDidOpen:(SRWebSocket *)webSocket {
    NSLog(@"连接成功,可以立刻登录你公司后台的服务器了,还有开启心跳");
}
-(void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error {
     NSLog(@"连接失败,这里可以实现掉线自动重连,要注意以下几点");
     NSLog(@"1.判断当前网络环境,如果断网了就不要连了,等待网络到来,在发起重连");
     NSLog(@"2.判断调用层是否需要连接,例如用户都没在聊天界面,连接上去浪费流量");
        //关闭心跳包
         [webSocket close];
 }
- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean {
        //关闭心跳包
         [webSocket close];
     NSLog(@"连接断开,清空socket对象,清空该清空的东西,还有关闭心跳!");
 }
- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message  {
             //收到数据代理方法
            // 收到数据后,你要给后台发送的数据. 
            [webSocket send:@""];
 }

相关文章

网友评论

    本文标题:iOS SocketRocket使用

    本文链接:https://www.haomeiwen.com/subject/gyqbnxtx.html