WebRTC怎么实现群组聊天
在WebRTC中实现群聊和文件共享的方式有很多种。下面是一些常用的方法,有需要的用户可以参考。
WebRTC怎么实现群组聊天
WebRTC没有任何处理多对多通信的内置概念。所以有以下几种选择:
创建一个全网状连接
对于相对较小的组,可以在每两个对等体之间建立连接。这被称为“全网状拓扑”。
整个网络结构的好处是它们比较分散,比较简单。但一个很大的问题是它缺乏可扩展性——每增加一个新用户,连接总数就会增加n-1。同样,每条消息也要分别发给每个用户,这样会占用很多带宽。
00-1010全网状结构不是创建独立的端到端拓扑的唯一方式。其他处理方法,如小世界网络或分层/树形网络,可以通过将一些节点变成中继来传输数据,从而在可扩展性和延迟之间做出更好的折衷。
00-1010对于许多用例,最好避免一起进行端到端的通信,而是要有一个服务器端的进程连接。对于大量的WebRTC用户,如Google Hangouts或Twilio,对等点是一个收集、聚合、处理和传输数据的服务器。你可以在本系列教程后面的文章中了解到选择性传输单元,网桥,组播等等。
00-1010在本节中,我们将在用户之间创建一个完整的网络连接。为了完成这项任务,我们需要采取以下步骤:
我们为每个用户生成一个随机的用户id
我们将此用户id存储在deepstreamHub列表中
每当用户想要加入时,需要与列表中的每个用户建立连接。
为了广播消息,我们重复所有连接,并将消息发送给每个用户。
当连接断开时,其他用户会将连接移出房间。
给出以上步骤是如何工作的:(可以点击这里在Github上查看这个例子,原文最后有动态演示)
我们首先连接到deepstreamHub并生成一个随机的用户id:
为了跟踪聊天室中的用户ID,让我们创建一个deepstreamHub列表—一个可见的字符串组,其状态将与所有连接的用户共享。因为我们自己的用户也是聊天室的成员,所以我们直接把自己的用户名添加到列表中。
现在,一旦一个用户被添加到列表中,我们就必须建立到这个用户的端到端连接。
这里的连接类似于我们在数据通道教程中提到的连接,封装在一个迅雷里。它们之间只有两个区别:
00-1010每个对等体必须来回发送SDP以建立连接——但是由于我们现在正在创建多连接呼叫,所以我们仍然需要接收多个信号。为了处理这些信号,我们注册了一个中央消息监听器。传入的消息将被路由到相关的接收者:
00-1010当连接关闭时,我们需要从列表中删除相关用户。我们使用了一个removeEntry()来实现这个功能。
你可以点击这里查看完整的代码,或者点击下图跳转到原文来试试这个例子。
00-1010 GeForce GTX 760怎么样
打开dat文件的操作过程
如何安装vim