【问题标题】:WebRTC using Peerjs with Native Android/iOS clientsWebRTC 使用 Peerjs 和原生 Android/iOS 客户端
【发布时间】:2015-06-19 16:16:38
【问题描述】:

我们正在尝试构建一个内部系统,该系统将为我们提供使用 WebRTC 的简单聊天/视频功能。我们已经成功部署了在浏览器上运行良好的 Peer.js 客户端和服务器。

但是,我们似乎无法找到一个相当简单的 Android/iOS 客户端/SDK 来使其与我们的 PeerJS 服务器兼容。

我们已经尝试调查AppRTC 并让 Android 客户端与他们的服务器一起运行,但是我们无法理解如何将它连接到我们的 PeerJS 服务器,因为那个 Android 客户端(和服务器实现)看起来真的很复杂(我们'不是 JAVA 专家)。

我也研究过 EasyRTC,但他们似乎撤回了他们的原生 SDK,但技术堆栈看起来非常接近我们的。

我的问题是,有没有人有 Android/iOS 客户端与运行在 NodeJS 服务器上的 WebRTC 一起工作?有哪些可能的解决方法可以在 Android 上本地启动和运行?

我们正在寻找一个相当简单的 Android SDK(链接到库/示例项目),它可以与 PeerJS 服务器一起使用。

编辑:我们可以自己构建一个信令服务器(在 NodeJS 上),但是我们如何构建 Android/iOS 客户端呢?

我将悬赏 200 名代表给能够回答我们问题的人。

【问题讨论】:

  • 我知道这是一个老话题,但我在这里面临同样的情况。你有没有发现任何关于它的东西,甚至让它发挥作用?
  • @ErickGallani 是的,我们做到了,我们从 peerjs 转移到了一个简单的 ws 实现,我们的 iOS/Android 开发人员发挥了他们的魔力,并修改了 Android/iOS SDK 以使其以某种方式工作。不知道如何:/

标签: android ios node.js webrtc peerjs


【解决方案1】:

我不知道 PeerJS,但它似乎在使用 websockets。如果是这种情况,您必须在本机客户端(以及各种 PeerJS 内部连接/信令协议)中实现 WebSocket 客户端功能。

对于本机到本机的信号,这真的很简单,因为我们只需要在客户端之间交换 SDP 和 ICE 候选消息(通过 WebSocket 或任何其他消息机制)。

显然,要连接到 PeerJS 服务器,我们需要用 Java 或 C(ObjC) 实现的 PeerJS 客户端。

如果存在这样的实现或 SDK,我会感到惊讶。

我不知道 AppRTC 源的当前状态,但在它的旧版本中,它托管了一个 WebView 来运行一种 HTML+JavaScript 信号客户端。

也就是说,您可以托管一个 WebView 并在 Android/iOS 应用程序中重用您的 PeerJS 客户端。

【讨论】:

  • 这是有道理的。我们可能会构建自己的 websocket 服务器,但我们不太确定 Android/iOS 客户端。我们可以使用任何教程从头开始构建信号服务器(在 NodeJS 上)和 Android/iOS 客户端?
  • @Ignas 我确实搜索了教程或开源,但大多数对于我的简单目的来说太大或太复杂。所以我用 J2EE 在 1 天内制作了一个简单的信令服务器。基本的聊天示例就足够了(blogs.oracle.com/arungupta/entry/…),除了不要将消息发回给发件人。使用此服务器,连接 2 个客户端,一个发送提供另一个回复答案。就这样。调用顺序:webrtc.org/native-code/native-apis
【解决方案2】:

你可以看看 Crosswalk 项目。关注Tutorial: porting Android app from Web App for WebRTC using PeerJS library。我已经做到了,而且效果很好。

还有另一个选项是使用 http://phonegap.com/ 从 Web 应用程序移植到 Android/iOS,但我无法仅使用“getUserMedia”API 使其工作。

希望有帮助

【讨论】:

  • 恐怕这不是一个选择。它必须是原生的,所以我们使用 AppRTC 作为我们的基础。
  • 如果你想拥有“真正”的原生应用,我想你可以看看WebRTC的官方网站:webrtc.org/native-code或者你可以查看一个开源项目OpenWebRTC:openwebrtc.io他们提供 API 来在许多平台上构建原生 WebRTC 应用程序,例如:iOS/Android/MacOS/Linux。希望对您有所帮助!
  • 是的,这就是我们所做的,尽管我们花了一些时间来整理它。为答案喝彩。
【解决方案3】:

我在这里找到了一个例子https://github.com/pchab/AndroidRTC1

在服务器上,他们使用了 nodejs + socket.io + AngurlarJs。 在客户端他们使用 libjingle_peerconnection + socket.io 客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多