6

在寻求使用客户端到服务器模型(如 Discord)实现 WebRTC 后,我得出的结论是,实现此目的的方法是拥有 2 个客户端 - 服务器和客户端。音频流可以叠加并在 1 个单一流中发送回用户。

后端/server.js

const clientPeer = new Peer({ initiator: true, wrtc });
    
clientPeer.on('connect', () => console.log('hi client, this is server'));
clientPeer.on('data', (data) => console.log('got a message from client peer: ', data));

前端/index.js

serverPeer.on('connect', () => console.log('Connected to server'));
serverPeer.on('stream', async (stream) => {
  const video = document.createElement('audio');

  ('srcObject' in video)
    ? video.srcObject = stream
    : video.src = window.URL.createObjectURL(stream);

  await video.play();
});

我将如何实现在客户端和服务器之间发送媒体流?

4

1 回答 1

4

一个可能的解决方案是:创建一个MediaRecorder对象,它可以在客户端记录媒体流。这个对象随着时间的推移发出数据块。您可以通过 WebSocket 将这些块发送到服务器。在服务器端,你可以对数据块做你想做的事。有关更多详细信息,您可以查看此https://mux.com/blog/the-state-of-going-live-from-a-browser/

https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder 另一种解决方案是:使用 WebRTC 使 node.js 应用程序成为 PEER

于 2021-08-25T11:46:49.700 回答