我正在编写一个简单的流服务。
A浏览器A打开服务器的Web套接字,然后另一个浏览器B打开同一服务器的新套接字。
浏览器A通过其摄像机(MediaRecorder API)注册视频并将其发送到服务器。
服务器将此视频广播到其他连接的浏览器。
我使用Socket.IO有一个可用的版本,但是我想使用普通的JavaScript(Node.js服务器上的WebSocket.Server和客户端上的webSocket)来实现。
这是问题所在
使用socket.io可以编写如下内容:
this.socket.emit('broadcast', {
stream: new Blob(stream, {'type': `video/webm${MEDIA_CHARSET}`}),
from: {id: this.socket.id}
});
流来自mediarecorder->可用数据事件监听器
但是使用本地websocket,我无法发送嵌入JSON对象中的blob,因为websocket只能发送字符串或arraybuffer。
为了将JSON和Blob一起发送,我尝试了许多不同的方法,但是没有任何效果。
有帮助吗?
是否可以仅在客户端使用Engine.IO以便将带有blob和JSON的消息打包在一起?有这种想法吗?
答案 0 :(得分:0)
有许多方法可以序列化数据以通过二进制Web套接字发送。我建议考虑使用CBOR,它可以序列化为二进制,并且在其中支持二进制数据。
在NPM上有几个CBOR库可供选择。