目标:
使用 webRTC
(无视频或音频)在网页上创建一个非常基本的文本聊天室。首先,我不关心创建聊天室、拥有用户名或支持大量连接。我只想将其设置为支持前 2 个人访问该网页,以便他们可以发送/查看消息。
基本上我想创建与这个漂亮的 demo 非常相似的东西, 除了让 2 个人互相交谈而不是只与自己交谈。
计划:
我计划使用免费的虚拟主机网站来获取免费域并上传我的 .html
、.js
和 .css
文件到。这个我已经做过了。我不想使用任何支持库来设置连接,因为我这样做是为了学习经验。
据我了解,这些事情需要发生才能使这项工作成功。需要建立一个 PeerConnection
。需要握手才能打开 PeerConnection
。并且需要打开一个 DataChannel
来发送实际的消息。
问题/疑虑:
因为我对音频/视频不感兴趣,所以我不必担心
STUN
或TURN
对吗?这些只是正确处理发送媒体所必需的吗?我可以只使用
WebSockets
来完成完整的握手过程吗?我可以在没有任何服务器的情况下完成这个项目吗?
我看过的所有教程/演示都没有明确的文本聊天(连接到其他人)所以这就是为什么我不确定没有音频/视频是否允许我这样做我想要。
感谢您提供的任何帮助。我不是在寻找代码,我是在尝试定义我的项目布局。如果我在这里提到的任何内容有误或不起作用,请告诉我!
最佳答案
Since I'm not interested in audio/video I don't have to worry about STUN or TURN right? These are only required to handle sending media correctly?
您可能需要 STUN 和 TURN。 WebRTC 建立直接的点对点通信,如果没有至少一个 STUN 服务器,有时是一个 TURN 服务器,这通常是困难的或不可能的。
Can I use just WebSockets to accomplish the complete handshaking process?
您需要提供某种方式从浏览器 A 向浏览器 B 获取消息。通常的方法是使用 Web 服务器和 WebSockets,或者有时使用 HTTP。
Can I accomplish this project without having to have any sort of server?
没有。您可以使用软盘将 HTML 和 Javascript 发送到客户端,但为了设置点对点通信,您将需要能够在客户端之间近乎实时地传输消息的东西。这通常是一个服务器。 (我看过使用电子邮件或复制粘贴的演示,但它们很脆弱。
关于websocket - webRTC 文本聊天 - 项目、PeerConnection 和握手设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556244/