我正在编写一个简单的流媒体服务。
A 浏览器 A 打开一个到服务器的 Web 套接字,然后另一个浏览器 B 打开一个到同一服务器的新套接字。
浏览器 A 通过其摄像头(MediaRecorder API)注册视频并将其发送到服务器。
服务器将此视频广播到其他连接的浏览器。
我有一个使用 Socket.IO 的工作版本,但我想用 vanilla JavaScript(Node.js 服务器上的 WebSocket.Server 和客户端上的 webSocket)来做。
这就是问题:
使用 socket.io a 可以这样写:
this.socket.emit('broadcast', {
stream: new Blob(stream, {'type': `video/webm${MEDIA_CHARSET}`}),
from: {id: this.socket.id}
});
Stream 来自 mediarecorder -> dataavailable 事件监听器
但是对于本机 websocket,我无法发送嵌入到 JSON 对象中的 blob,因为 websocket 只能发送字符串或数组缓冲区。
为了将 JSON 和 blob 一起发送,我尝试了许多不同的方法,但没有任何效果。
有什么帮助吗?
是否可以在客户端仅使用 Engine.IO 以便将带有 blob 和 JSON 的消息打包在一起?关于这种方式的任何想法?