Node.js 为什么在节点服务器关闭时视频流仍在继续

Node.js 为什么在节点服务器关闭时视频流仍在继续,node.js,websocket,video-streaming,webrtc,ports,Node.js,Websocket,Video Streaming,Webrtc,Ports,WebRTC客户端相互交换消息后,视频流开始。消息操作在使用1337端口和web套接字的节点服务器上进行。在我关闭1337端口上的服务器后,视频流将继续。为什么?webrtc客户端使用哪些端口。节点服务器使用一个端口(1337)。如何学习、控制或更改web rtc服务器和客户端使用的这些端口?Node.js服务器仅用于会话启动和中断。因此,一旦会话启动(除非媒体或网络发生更改),它将继续进行,直到其中一个对等方结束会话。请记住,WebRTC是一种对等连接 一旦为对等连接交换了所需的Ice候选和S

WebRTC客户端相互交换消息后,视频流开始。消息操作在使用1337端口和web套接字的节点服务器上进行。在我关闭1337端口上的服务器后,视频流将继续。为什么?webrtc客户端使用哪些端口。节点服务器使用一个端口(1337)。如何学习、控制或更改web rtc服务器和客户端使用的这些端口?

Node.js服务器仅用于会话启动和中断。因此,一旦会话启动(除非媒体或网络发生更改),它将继续进行,直到其中一个对等方结束会话。请记住,WebRTC是一种对等连接

一旦为对等连接交换了所需的Ice候选和SDP信息,则不再需要信令服务器(除非发生任何不可预见的网络/媒体更改)。会话中的一个对等方(对等连接本身)必须结束会话并停止流式传输

编辑:

  • 对于Chrome,默认情况下,介质在同一端口上多路复用(仅使用一个介质端口)。在FireFox中,我相信音频和视频使用不同的端口…除非在最近的更新中进行了更改
  • 您不能在WebRTC客户端中指定媒体端口,并且仍然保证可以建立媒体连接(不是在任何浏览器实现中,您可以使用本机API实现这一点)。您可以修改SDP中的端口,但这会中断介质的NAT遍历
  • 信令服务器与客户端使用的媒体端口无关
  • 由于无法交换媒体设置信息(端口、媒体类型、流ID等),因此在信令服务器脱机后,您完全无法修改媒体流
  • 我预见了在当前javascript API中控制媒体端口的两种方法:

  • 您必须控制ICE服务器以及允许它们尝试和设置NAT穿越(晕眩和转弯)的端口。这将在服务器端完成,而不能由系统的WebRTC(客户端)部分完成。因此,您不能仅在WebRTC中完成这项工作,而只能通过操纵ICE服务器收集候选对象的方式
  • 另一个不太可能且几乎无法提及的情况是,如果您知道哪些端口可用于NAT遍历(在对等端上设置端口转发或其他),则您可以在本地设置SDP中的媒体端口并将其发送给对等方之前修改它。在这种情况下,您不需要ICE服务器

  • 关于媒体的端口分配

    我们可以更改视频流继续时使用的端口号吗@默特奥佐乌尔你什么意思?信令端口或媒体端口?媒体流端口。视频流继续时使用了多少端口。我们可以更改它吗?端口?端口范围?@MertÖzoğul,这完全取决于SDP中的内容。NAT遍历是这里的主要问题。如果您在知道连接双方都有哪些端口可用的情况下解决了这个问题,那么您可以修改SDP中的媒体端口。