SocketRocket的基本使用方法
2017-01-18 15:59
736 查看
WebSocket与普通网络请求的区别
WebSocket是建立的长链接,既建立连接后持续受到数据,普通的网络请求建立一次连接后只能请求一次数据,想要再次请求数据必须再次建立网络连接。WebSocket的使用场景
可以用来做实时通讯和实时绘制折线图之类的需要一直保持数据请求的地方cocopods导入WebSocket
podfile 里写pod 'SocketRocket'导入头文件设置代理
在需要用的地方导入#import <SocketRocket/SRWebSocket.h>并遵循代理 SRWebSocketDelegate
声明一个全局的对象 SRWebSocket *webSocket;(声明一个webSocket属性也行)
设置socket建立连接
- (void)setSocket { webSocket.delegate = nil; [webSocket close]; webSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"ws://114.55.57.51:8282"]]]; webSocket.delegate = self; NSLog(@"Opening Connection..."); [webSocket open]; }
SRWebSocketDelegate 代理方法实现
- (void)webSocketDidOpen:(SRWebSocket *)webSocket { NSLog(@"Websocket Connected"); /* // 如果需要发送数据到服务器使用下面代码 NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:@{@"id":@"chat",@"clientid":@"hxz",@"to":@""} options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; [webSocket send:jsonString]; */ }
连接失败
- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error { NSLog(@":( Websocket Failed With Error %@", error); webSocket = nil; // 断开连接后每过1s重新建立一次连接 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self setSocket]; }); }
收到消息
- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message { NSLog(@"Received \"%@\"", message); }
连接关闭
- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean { NSLog(@"WebSocket closed"); webSocket = nil; }
相关文章推荐
- node的socket.io的之基本使用方法.
- socket基本使用方法(转载)
- eclipse +cvs 的基本使用方法(二)
- Vi编辑器的基本使用方法!
- Vi编辑器的基本使用方法
- Log4j基本使用方法
- [导入]Vi编辑器的基本使用方法 (转载)
- Sailprint打印组件的基本使用方法。
- Log4j基本使用方法
- Log4j基本使用方法
- Vi编辑器的基本使用方法
- Vi 的基本使用方法
- 使用TcpListener的AcceptSocket()方法和AcceptTcpClient()方法接受远端数据时,程序总是好像死机一样!请问如何解决?
- Log4j基本使用方法
- eclipse +cvs 的基本使用方法
- Log4j基本使用方法
- eclipse +cvs 的基本使用方法(三)
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- Vi编辑器的基本使用方法