用于webrtc的Java信令服务器

时间:2017-01-15 11:07:11

标签: java webrtc

在以下文章中: WebRTC Cookbook Article

解释了如何实现java信令服务器。

据说:

  

因此,两个客户端交换必要的数据(包括网络详细信息),然后建立直接的对等连接。建立连接后,对等体不再使用服务器。

但是查看代码仍然需要服务器将通信中继到所有客户端(sendToAll-method)。

任何人都可以解释一下如何使用这样的代码进行直接的点对点通信吗?我仍然无法弄清楚2个(或更多)客户端如何与p2p进行通信。

2 个答案:

答案 0 :(得分:0)

这意味着当p2p WebRTC连接启动并运行时,实际上没有使用信令服务器。

虽然,信令服务器可以提供一些额外的功能 - 例如广播文本聊天(当一个对等体可以向所有其他对等体发送文本数据时)。在这种情况下,您的应用程序仍然可以利用信令服务器在对等体之间交换额外的数据,但它不是WebRTC数据,它只是对应用程序有意义的数据,而不是WebRTC堆栈。

因此,在正常情况下,在建立p2p连接之后,WebRTC堆栈不使用信令(但实际上信令信道CAN可用于重新协商,例如)。但是您的应用程序仍可以完全自由地使用信令通道来获取自己的额外数据。它实际上完全取决于您在应用程序和信令服务器中实现的逻辑。

答案 1 :(得分:0)

信令服务器用于建立WebRTC对等连接。对等连接是两对音频,视频和数据之间的直接连接。

通常不可能在没有信令服务器的情况下设置WebRTC对等连接,因为大多数用户没有固定的IP地址,并且位于网络地址转换(NAT)系统和状态防火墙之后。信令服务器在两个用户之间中继消息,直到他们能够成功地协商对等连接,例如,使用STUN来发现他们在因特网上看到的IP地址。

建立对等连接后,不需要信令服务器。但是,您可以设计一个系统,如果这更符合您的需求,仍然可以通过信号通道发送数据。

WebRTC的信令部分未指定。信令服务器需要为用户提供一些方法来选择他们想要与谁通信。

WebRTC具有点对点设计。为了支持2个以上的对等体,每对对等体需要建立对等体连接,或者系统需要媒体服务器来组合音频/视频流。