我们想为提供视频流的应用程序添加实时聊天功能。
视频流通过将RTP协议修改为TCP进行通信,提供特殊视频。
因此,在保持连接的同时不断传输文件。
想请教如何实现聊天功能。
一般情况下,实时聊天通常是通过WebSockets实现的。
我部门负责人 据说,维护每个 RTP 和 WebSocket 连接会给客户端智能手机带来很大的负载,并导致电池消耗等问题。
维持两个TCP连接真的会给客户端带来很大的风险吗?
维持两个TCP连接真的会给客户端带来很大的风险吗?
一个应用程序可以有多个 TCP 连接,这一般来说是完全没问题的,而且它本身不会带来风险。风险取决于其实施方式。话虽这么说,是的,您可以同时运行视频流(或摄取)和实时聊天功能。
想请教如何实现聊天功能
有很多方法可以做到这一点。您可以从头开始或使用第 3 方聊天 api(TalkJS、CometChat、Sendbird)。
要从头开始,您必须选择要使用的实时通信协议。是的,WebSockets 很常用。您还可以使用 Socket.io、Firebase 实时数据库甚至 WebRTC 等库。
关于您对电池的担忧:不,WebSocket 本身不会消耗大量电池。这一切都取决于消息的频率、消息的有效负载、后台或前台活动、网络类型(蜂窝)等。我假设为了传输视频,您也正在使用某种编解码器。编解码器的类型、分辨率、帧速率和背景流对电池有一定影响。简而言之,更高的处理能力和带宽将导致电池使用量增加。
我最后的想法是同时使用视频流+ websocket是正常的(大多数聊天应用程序都在这样做)。请务必使用正确的协议进行视频传输和流媒体。