使用 Spring Boot 构建短信和视频通话应用程序
Posted
技术标签:
【中文标题】使用 Spring Boot 构建短信和视频通话应用程序【英文标题】:Building Text message and Video Calling Application using Spring boot 【发布时间】:2020-03-29 04:44:21 【问题描述】:我想使用 Spring Boot 创建一个应用程序,在该应用程序中,我可以在我的应用程序上注册的 2 个用户之间进行视频通话和共享测试消息。我还想保存这些视频以供将来使用,例如,如果将来有人想观看这些视频,我应该拥有该视频。
我知道 node.js 也可以使用 node.js 中的 WebRTC 制作视频通话应用,但我仍然不确定我是否可以将这些视频保存在 WebRTC 中?
我是 Java 开发人员,知道如何从头开始创建应用程序,但我在视频通话功能上苦苦挣扎,有人可以帮忙吗?
感谢您的回复!
【问题讨论】:
我不太了解您的设置。你在前端使用 Angular,后端使用 Spring-boot,对吗?如果是这种情况,您将不会使用 node.js(可能用于开发除外)。 是的,你很正经,我想要你的建议,我可以使用 Angular + spring boot 其他选项是使用Node.js,哪个更好选择..? 【参考方案1】:videochat 有 2 个依赖项。 *
-
媒体传输(浏览器端,需要javascript)
握手(信号,nodejs socket.io首选,php,java,.net都可以用)
对于握手, 你可以使用 socket.io、signalR、polling 等。 假设有 2 个用户,A 和 B A 必须知道 B 存在且可用, 这种信息传输通常由 socket.io (nodejs) 处理,但您可以通过轮询来完成。 在 A 和 B 注意到对方之后 A 呼叫 B。然后您开始使用浏览器 webrtc 支持连接对等点。 然而 2 个客户端之间有 3 种媒体连接方式。
点对点 Sfu 单片机点对点 只有客户端之间的信号足以进行媒体握手。客户端的浏览器可以在没有任何媒体服务器的情况下相互通信。由于没有媒体服务器,因此流将由客户端自己的浏览器记录。你可以看看
https://github.com/muaz-khan/RecordRTC
Sfu Kurento、蚂蚁传媒、Wowza、冰封山等是选择性转发单元,当B请求观看该流时,A将流发布到服务器,然后B向服务器请求。如果 C 请求观看此流,则 C 将 A 和 B 流作为单播获取。所有流服务器都有不同的 API 和方法。对于 Kurento,您需要将新的 Recordenpoint 添加到现有管道中。对于 Wowza,您需要将 webrtc 转码为 RTMP,然后录制流。对于蚂蚁媒体,录制过程可以自动启动。
https://doc-kurento.readthedocs.io/en/6.11.0/tutorials/js/tutorial-recorder.html
单片机 A发布到服务器,B发布到服务器,C发布到服务器。 A 可以获得混合(A B C 的复合视图)流,并且只能获得 1 个流等。
如您所见,webrtc 具有不同的功能。 Kurento 有用于通信的 nodejs 和 java SDK。但是,对于发布和播放流端,您需要在客户端使用 Javascript(而不是 nodejs)。
这是一个使用 Wowza 和蚂蚁媒体的示例短信和视频会议。
https://github.com/Lethea/wowza-webrtc-group-call-and-chat
https://github.com/Lethea/ant-server-webrtc-chat-room
【讨论】:
以上是关于使用 Spring Boot 构建短信和视频通话应用程序的主要内容,如果未能解决你的问题,请参考以下文章