ssocketoc
模仿 Koa 中间件控制的 WebSocket 服务对应的客户端程序,容易上手,支持 GZIP 解压缩和 ProtoBuffer 解压缩配置,如果觉得写的不错,就给个 Star 吧
⭐️ ~
示例
要运行示例项目,请克隆代码仓库,然后首先从示例目录运行 pod install
。
要求
安装
ssocketoc 通过 CocoaPods 可用。要安装它,只需将以下行添加到您的 Podfile 中
pod 'ssocketoc'
作者
summer.li, [email protected]
许可协议
Ssocketoc遵循MIT许可协议。有关更多信息,请参阅LICENSE文件。
使用方法
点击安装服务端程序
// ProtoBuf 解压缩配置
NSString* json = @"{\"test\":{\"required string username\":0,\"required float amount\":1,\"required double amount2\":2}}";
SWebSocket* socket = [[SWebSocket alloc] init:@"http://127.0.0.1:8080" options:@{@"protos_request_json":json, @"protos_response_json":json}];
[socket on:@"open" callback:^(id data){
NSLog(@"SWebSocket: 连接打开[%@]", data);
}];
[socket on:@"close" callback:^(id data){
NSLog(@"SWebSocket: 连接关闭[%@]", data);
}];
[socket on:@"error" callback:^(id data){
NSLog(@"SWebSocket: 连接异常关闭[%@]", data);
}];
[socket on:@"shakehands" callback:^(id data){
NSLog(@"SWebSocket: 握手[%@]", data);
}];
[socket on:@"connection" callback:^(id data){
NSLog(@"SWebSocket: 握手完成[%@]", data);
// 发送携带回调函数的请求
[socket request:/*路由地址*/@"test" /*请求数据*/data:@{@"username":@"12312313"} callback:^(id data){
// 收到请求回调
ResPacket* res = data;
NSLog(@"SWebSocket: 事件响应[%@]", [res yy_modelToJSONString]);
}];
// 发送没有回调函数的请求
[socket request:@"test" data:@{@"username":@"测试", @"amount":@12.45631, @"amount2":@456.153156}];
}];
[socket on:@"reconnection" callback:^(id data){
NSLog(@"SWebSocket: 重连完成[%@]", data);
}];
[socket on:@"pong" callback:^(id data){
NSLog(@"SWebSocket: 收到服务器【pong】回应[%@]", data);
}];
[socket on:@"ping" callback:^(id data){
NSLog(@"SWebSocket: 向服务器发起【ping】请求[%@]", data);
}];
[socket on:@"reconnectioning" callback:^(id data){
NSLog(@"SWebSocket: 正在重新连接[%@]", data);
}];
// 绑定事件
[socket on:@"test" callback:^(id data){
ResPacket* res = data;
NSLog(@"SWebSocket: 收到服务端事件回应[%@]", [res yy_modelToJSONString]);
}];
// 打开连接
[socket connection];
// 关闭连接
[socket close];