通过 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 工作。