通过 OpenTok 的 iOS SDK 发送 OpenTokSignal
Sending a OpenTokSignal via OpenTok's iOS SDK
我正在尝试从我的 iOS 设备向我们的 OpenTok 信令服务器发送信号。
但是,从浏览器发送的负载会被 OpenTok 的 SDK 转换为 JSON 字符串。但是,当我用有效负载(以字符串格式)发送回信号时,我转换了我的 NSDictionary(使用以下块):
NSString *jsonString;
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
if (!jsonData) {
NSLog(@"error: %@", error.localizedDescription);
jsonString = @"{}";
} else {
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF16StringEncoding];
}
return jsonString;
并发送我的浏览器收到的这个字符串。
[_session signalWithType:VC_WebRTC_Signal_Chat string:jsonString connection:nil error:&error];
但是,OpenTok 不会自动将此 JSONString 转换回 JSON 对象,并且返回的有效负载作为 String 返回。我应该使用 NSJSON 序列化选项来处理这个问题吗?
信号接口只接收和输出字符串。您有责任执行自己的 encoding/decoding 高阶数据。
对于您的情况,我认为您可能希望使用 JSONObjectWithData:options:error:
将从委托回调 session:receivedSignalType:fromConnection:withString:
收到的字符串转换回 dictionary/array/whatever.
完全披露:我为 TokBox 工作。
我正在尝试从我的 iOS 设备向我们的 OpenTok 信令服务器发送信号。
但是,从浏览器发送的负载会被 OpenTok 的 SDK 转换为 JSON 字符串。但是,当我用有效负载(以字符串格式)发送回信号时,我转换了我的 NSDictionary(使用以下块):
NSString *jsonString;
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
if (!jsonData) {
NSLog(@"error: %@", error.localizedDescription);
jsonString = @"{}";
} else {
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF16StringEncoding];
}
return jsonString;
并发送我的浏览器收到的这个字符串。
[_session signalWithType:VC_WebRTC_Signal_Chat string:jsonString connection:nil error:&error];
但是,OpenTok 不会自动将此 JSONString 转换回 JSON 对象,并且返回的有效负载作为 String 返回。我应该使用 NSJSON 序列化选项来处理这个问题吗?
信号接口只接收和输出字符串。您有责任执行自己的 encoding/decoding 高阶数据。
对于您的情况,我认为您可能希望使用 JSONObjectWithData:options:error:
将从委托回调 session:receivedSignalType:fromConnection:withString:
收到的字符串转换回 dictionary/array/whatever.
完全披露:我为 TokBox 工作。