我使用 pyzmq 和 pyqt for UI 为我的本地网络(所有 WINDOWS)构建了一个消息传递/聊天应用程序,它基于majordomo 模式。它是这样设置的:
- 网络上的每台机器都有一个客户端/工作者对
- 他们通过 pyzmq连接到“服务器” 代理并注册会话
- 会话由“服务器” 代理广播给客户端
- 当'sender '客户端向特定会话发送消息时,broker将消息路由到相应的worker目的地,worker生成回复,然后由 broker 将其路由回'sender'客户端(结束循环,确认传递)
一切正常,短信在“客户端”pyqt UI 中形成,并由“worker”pyqt UI 接收。现在我希望在这个框架的基础上为我的应用程序添加视频聊天......我一直在研究 webRTC 并希望找到一种方法来实现它。
这就是 webRTC 的工作原理根据我收集的信息(这里可能严重错误,请纠正我):
- 机器 A的 Chrome 浏览器通过 javascript 函数 webkitGetUserMedia 从网络摄像头/麦克风打开本地视频/音频流, 然后通过javascript 函数webkitURL为流创建(机器 A) URL
- 通过信令服务器将(机器 A) URL发送到机器 B的 Chrome 浏览器
- 机器 B的 Chrome 浏览器接受并加载(机器 A) URL ,通过前面提到的javascript 函数从 webcam.mic 设置它自己的本地视频/音频流,并通过信令服务器将(机器 B) URL回复回机器 A
- 机器 A的 Chrome 浏览器正在显示(机器 B)视频/音频 | 机器 B的 Chrome 浏览器正在显示(机器 A)视频/音频
是这个过程吗?或者这是对对等点如何相互连接的完全错误的假设?
如果正确,我想调整我当前的 pyzmq 应用程序以充当用于在机器之间创建连接的信号服务器,因为我知道我的机器的 IP 地址,我可以配置我的防火墙以访问我正在尝试的所需端口为了消除此设置的任何额外 STUN/TURN 服务器,我不打算离开我的 LAN 并访问远程机器。我想用 Python 处理所有事情(尽可能多地),包括电池(避免使用 Node.js)。
所以主要问题是我应该如何将 webRTC 集成到我的设置中?webRTC 是否需要在信令服务器或对等机器上构建和运行特定的先决条件库或 API?任何代码示例/建议/链接将不胜感激。