通过 OpenTok 的 iOS SDK 发送 OpenTokSignal

Posted

技术标签:

【中文标题】通过 OpenTok 的 iOS SDK 发送 OpenTokSignal【英文标题】:Sending a OpenTokSignal via OpenTok's iOS SDK 【发布时间】:2015-05-06 22:31:41 【问题描述】:

我正在尝试从我的 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 对象,并且返回的有效负载作为字符串返回。我应该使用 NSJSONSerialization 选项来处理这个问题吗?

【问题讨论】:

所以我理解您的问题:您正在将一个字符串传递给信号调用,并且您希望一个对象会在接收代表上返回? 【参考方案1】:

信号接口只接受和吐出字符串。您负责执行您自己的高阶数据编码/解码。

在您的情况下,我认为您可能希望使用 JSONObjectWithData:options:error: 将您从委托回调 session:receivedSignalType:fromConnection:withString: 收到的字符串转换回字典/数组/任何内容。

完全披露:我为 TokBox 工作。

【讨论】:

以上是关于通过 OpenTok 的 iOS SDK 发送 OpenTokSignal的主要内容,如果未能解决你的问题,请参考以下文章

跨平台视频通信项目-OpenTok

OpenTok 在音频/视频会议会话中缺少音频

Ionic Cordova OpenTok 无法从 IOS 发布视频

如何在 iOS 应用中实现 webRTC

Facebook iOS SDK - 向 facebook 用户发送应用请求

下载 opentok 会话档案