我试图在对等连接中发送两个调用,我想通过元数据区分它们,但当我检查元数据时,我得到空值。如何在拨打电话时添加元数据? 这是我当前的代码。
let cameracall = peer.call(conn.peer,ourcamera,{
meta_data:JSON.stringify({ "type":"camera" })
});
let screencall = peer.call(conn.peer,ourscreen,{
meta_data:JSON.stringify({"type":"help"})
});
这是文档的链接peercall
为了在没有元数据的情况下以正常方式调用远程对等点,我们有:
peer.call(remotePeerId, ourLocalStream);
用于调用远程对等点 + 将一些元数据附加到调用中:
options = {metadata: {"type":"screensharing"}};
peer.call(remotePeerId, ourLocalStream, options);
在远程对等端,用于检查接收呼叫中的元数据:
peer.on('call', call => {
console.log(call.metadata.type);
call.answer();
call.on('stream', stream => {
// somthing to do
});
});
请注意,对于可能没有为其定义任何元数据的其他调用,
call.metadata.type
没有任何意义。
存在语法问题。您需要执行此操作才能使用流发送元数据
let cameracall = peer.call(conn.peer, ourcamera, {
metadata: { "type": "camera" }
});
let screencall = peer.call(conn.peer, ourscreen, {
metadata: { "type": "help" }
});
然后在对等端,你可以得到这样的元数据
peer.on("call", connection => {
connection.answer();
connection.on("stream", stream => {
console.log(connection.metadata);
});
});
peer.on('call', call => {
call.answer(localStream);
call.on('stream', remoteStream => {
console.log(call.metadata.type)
});
});
peer.call(peerId, localStream,
{
metadata: {
"type": "help"
}
}
);
您可以随时获取内部的元数据。