我是Xcode的新手,我正在关注this github示例。我的任务是连接到信令服务器。如果设置了协议,则信令服务器仅接受连接。
// create the NSURLRequest that will be sent as the handshake
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"wss://example.com"]];
// create the socket and assign delegate
self.socket = [PSWebSocket clientSocketWithRequest:request];
self.socket.delegate = self;
//Something I need to add
self.socket.addprotocol="Protocol";
2 - ;另外我需要将JSON数据发送到下面的服务器是我需要在Objective C中编写的Android代码
JSONObject message = new JSONObject();
message.put("pc", 0);
message.put("message", "Bye");
socket.sendText(message.toString());
} catch (JSONException e) {
}
答案 0 :(得分:1)
对于问题#1,遗憾的是,您使用的PocketSocket库看起来并不支持子协议。但是,所有这些都不会丢失,因为有一个想要添加该功能的人pull request。您可以合并这些更改,或者只调整在请求中设置相应传出标头的单行代码:
[request setValue:[_protocols componentsJoinedByString:@","] forHTTPHeaderField:@"Sec-WebSocket-Protocol"];
对于问题#2,有NSJSONSerialization,它允许您轻松地将Objective-C NSDictionaries和NSArrays转换为JSON对象:
NSDictionary *o = @{
@"a": @"Ayyyy",
@"b": @"Beee"
};
NSError *error;
NSData *d = [NSJSONSerialization dataWithJSONObject:o options:NSJSONWritingPrettyPrinted error:&error];
if (error) {
NSLog(@"Error JSON-encoding object: %@", error);
} else {
NSString *s = [NSString stringWithUTF8String:[d bytes]];
NSLog(@"JSON:\n%@", s);
}