使用Peerjs实现WebRTC与原生Android/iOS客户端通信

5
我们正在尝试构建一个内部系统,使用WebRTC提供简单的聊天/视频功能。我们已经成功部署了Peer.js客户端和服务器,在浏览器上运行良好。
然而,我们似乎找不到一个相当简单的Android/iOS客户端/SDK,使其与我们的PeerJS服务器兼容。
我们尝试研究AppRTC,并在他们的服务器上运行了Android客户端,但是我们不知道如何将其连接到我们的PeerJS服务器,因为该Android客户端(和服务器实现)似乎非常复杂(我们不是JAVA专家)。
我还研究了EasyRTC,但是他们似乎撤回了他们的本地SDK,但技术堆栈看起来非常接近我们的。
我的问题是,有没有人在NodeJS服务器上运行WebRTC并使用Android/iOS客户端?有哪些可能的解决方法可以使其在Android上本机运行?
我们正在寻找一个相当简单的Android SDK(链接到库/示例项目),它可以与PeerJS服务器一起工作。
编辑:我们可以自己构建一个信令服务器(在NodeJS上),但是从那时起,我们该如何构建Android/iOS客户端呢?

我愿意提供200声望的赏金给那些能够回答我们问题的人。


我知道这是一个老话题,但我在这里面临同样的情况。你有关于它的任何发现,甚至让它工作了吗? - Erick Gallani
@ErickGallani 是的,我们已经完成了,我们从peerjs转移到了一个简单的ws实现,我们的iOS/Android开发人员进行了修改,使其以某种方式工作。不过我不确定是怎么做到的 :/ - Ignas
我正在使用Android WebView和JavaScript接口上的PeerJS进行语音和视频通话。它可以工作,但有以下限制:1.与后台服务不同,托管WebView的活动可能会在用户打开其他应用程序时被销毁。2.即使您使用TURN服务器,PeerJS也存在NAT穿透问题。 - Sujith S Manjavana
3个回答

1

很抱歉,这不是一个选择。我们必须使用原生的方式,因此我们以AppRTC为基础。 - Ignas
如果你想拥有一个“真正”的原生应用程序,我认为你可以查看WebRTC官方网站:http://www.webrtc.org/native-code,或者你可以检查一个开源项目OpenWebRTC:http://www.openwebrtc.io/。他们提供API以在许多平台上构建本机WebRTC应用程序,例如:iOS / Android / MacOS / Linux。希望这可以帮助到你! - luongnv89
是的,那就是我们所做的,尽管花了我们一些时间来解决它。感谢你的答案。 - Ignas

1
我不了解PeerJS,但它似乎使用WebSocket。如果是这种情况,您需要在本地客户端中实现WebSocket客户端功能(以及各种PeerJS内部连接/信令协议)。
对于本地到本地的信令,非常简单,因为我们只需要通过WebSocket或任何其他消息传递机制在客户端之间交换SDP和ICE候选者消息。
显然,要连接到PeerJS服务器,我们需要在Java或C(ObjC)中实现PeerJS客户端。
如果存在这样的实现或SDK,我会感到惊讶。
我不知道AppRTC源代码的当前状态,但在其旧版本中,它托管了一个WebView来运行一种HTML + JavaScript信令客户端。
也就是说,您可以托管一个WebView并在Android / iOS应用程序中重用您的PeerJS客户端。

有道理。我们可能可以建立自己的websocket服务器,但是我们不太确定Android/iOS客户端。 有没有教程可以用来从头开始构建一个信令服务器(在NodeJS上)和Android/iOS客户端? - Ignas
@Ignas 我搜索了教程和开源项目,但大多数对于我的简单目的来说都太大或太复杂了。所以我用 J2EE 在一天内制作了一个简单的信令服务器。基本的聊天示例就足够了(https://blogs.oracle.com/arungupta/entry/chat_sever_using_websocket_totd),只是不要将消息发送回发送者。使用此服务器,连接 2 个客户端,一个发送 offer,另一个回复 answer。就这样。调用顺序:http://www.webrtc.org/native-code/native-apis - 9dan

0

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

服务器端使用了nodejs + socket.io + AngurlarJs。 客户端使用了libjingle_peerconnection + socket.io客户端。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接