当前位置: 首页 > 工具软件 > SocketRocket > 使用案例 >

【转】SocketRocket:iOS WebSocket客户端开源框架

林元明
2023-12-01

原文网址:http://blog.csdn.net/zmp1123/article/details/44015507

WebSocket:

WebSocket通信协议实现的是基于浏览器的原生socket,维基百科上解释:“WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,WebSocketAPI被W3C定为标准。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。”

客户端在握手成功后,会触发WebSocket对象的onopen事件,告诉客户端连接已经成功建立了。客户端的WebSocket对象一共绑定了四个事件:

1、onopen:连接建立时触发;

2、onmessage:收到服务端消息时触发;

3、onerror:连接出错时触发;

4、onclose:连接关闭时触发;

 

SocketRocket:

它是采用OC编写的一个WebSocket客户端,来实现客户端与服务器的双向通信。

 

特性:

支持TLS(wss);

使用NSStream/CFNetworking;

使用ARC;

采用并行构架,大部分的工作由后端的工作队列完成;

基于委托编程。

SocketRocket Demo下载地址:https://github.com/square/SocketRocket

接着,只需要修改URL(ws:121.40.189.16:8888)部分,就可以实现简单的通信测试。

[objc]  view plain  copy
 
  1. - (void)_reconnect;  
  2. {  
  3.     _webSocket.delegate = nil;  
  4.     [_webSocket close];  
  5.       
  6.     _webSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"ws://121.40.189.16:8888"]]];  
  7.     _webSocket.delegate = self;  
  8.       
  9.     self.title = @"Opening Connection...";  
  10.     [_webSocket open];  
  11.   
  12. }  
 类似资料: