美文网首页iOS网络相关网络iOS开发技术分享
WebSocket之SocketRock第三方的使用

WebSocket之SocketRock第三方的使用

作者: 夜凉听风雨 | 来源:发表于2016-10-17 11:50 被阅读163次

WebSocket有多种第三方,本文讲的是SocketRock的基本使用。

WebSocket与普通网络请求的区别

WebSocket是建立的长链接,既建立连接后持续受到数据,普通的网络请求建立一次连接后只能请求一次数据,想要再次请求数据必须再次建立网络连接。

WebSocket的使用场景

可以用来做实时通讯和实时绘制折线图之类的需要一直保持数据请求的地方,下面是使用websocket实时请求数据绘制实时折线图的demo链接,觉得不错给我github点个心哦。

demo链接   git@github.com:jiangbin1993/DrawLineChart.git 

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;
}

扩展 使用浏览器应用Dark WebSocket Terminal来直接查看数据(也可直接在appstore上下载)

下面使用谷歌浏览器来示范

  1. 打开谷歌浏览器
    2.找到应用(如果没有此应用 请自行下载)


    Snip20161017_3.png

进入应用后看到这个

Snip20161017_4.png

打开Dark WebSocket Terminal后有点像终端的界面
输入命令/connect + url 既可请求到数据

Snip20161017_5.png

回车 可以看到已经在实时请求数据了

222.gif

如果这篇文章对您有一点帮助请帮忙顺手点个喜欢哦。

相关文章

  • WebSocket之SocketRock第三方的使用

    WebSocket有多种第三方,本文讲的是SocketRock的基本使用。 WebSocket与普通网络请求的区别...

  • swift Web Socket 的详细使用

    swift WebSocket 的详细使用 1 需要导入第三方库:Starscream.faramework ...

  • 【Java基础】WebSocket在Spring中的使用

    WebSocket 使用 关于怎么使用WebSocket,以及WebSocket的一些概念,这篇文章[https:...

  • Swift WebSocket 使用方法

    Swift 项目中遇到需要集成WebSocket,在查阅了相关文档后,决定使用Starscream这个第三方库 使...

  • Websocket

    使用WebSocket WebSocket 接受一个url参数,然后使用WebSocket对象的构造函数来建立与服...

  • Express Websocket使用

    本文主要介绍express+websocket的使用 WebSocket WebSocket 协议在2008年诞生...

  • websocket

    Websocket 协议 Websocket 遵循 rfc6455 标准。websocket使用HTTP作为它的传...

  • 柯南回忆录之Socket(五)

    在使用socket过程中出现了一些问题。最后终于解决了bug,在这里和大家分享一下。 使用SocketRock...

  • 长链接学习链接

    php之websocket服务使用(弹幕实现) https://blog.csdn.net/miao091...

  • OKHttp之WebSocket的使用

    WebSocket协议是一种建立在TCP连接基础上的全双工通信的协议。应用于即时通信等场景。 全双工通信:客户端和...

网友评论

    本文标题:WebSocket之SocketRock第三方的使用

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