Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点gRPC:无错误地将元数据从服务器发送到客户端_Javascript_Node.js_Grpc_Grpc Node - Fatal编程技术网

Javascript 节点gRPC:无错误地将元数据从服务器发送到客户端

Javascript 节点gRPC:无错误地将元数据从服务器发送到客户端,javascript,node.js,grpc,grpc-node,Javascript,Node.js,Grpc,Grpc Node,从客户端,很容易为服务器添加元数据: const meta = new grpc.Metadata(); meta.add('xyz', 'okay'); stub.service.Rpc(request, meta, (err, response) => { }); 可以通过以下方式在服务器上访问上述内容: call.metadata.get('xyz'); 现在,如果我们需要将元数据从服务器发送到客户端,我们可以执行以下操作: const err = { code, detail

从客户端,很容易为服务器添加元数据:

const meta = new grpc.Metadata();
meta.add('xyz', 'okay');

stub.service.Rpc(request, meta, (err, response) => {
});
可以通过以下方式在服务器上访问上述内容:

call.metadata.get('xyz');
现在,如果我们需要将元数据从服务器发送到客户端,我们可以执行以下操作:

const err = { code, details };
const meta = new grpc.Metadata();
meta.add('...', '...');

callback(err, null, meta);
请注意,我们正在传递错误,实际响应是
null

如何传递
null
错误和非null响应以及元数据

如果我执行以下操作,它似乎不起作用,因为如果没有错误,就无法访问客户端上的元数据

callback(null, r, meta);
// `r` is some response message
gRPC规范是否明确禁止在没有错误时将元数据从服务器发送到客户端?

另外,在我们进行讨论时,我希望有人解释一下如何将跟踪元数据和初始元数据从服务器发送到节点中的客户端

相关链接:


看起来您可以使用以下代码:

client.someFunction().on('metadata', (meta) => { /* any code */ })
至少在v0.9.x上,您可以看到:

服务器:

const method = (call, cb) => {
  // code
  call.sendMetadata(metadata)
  // code
}
客户:

const call = client.method(params, cb)
call.on('metadata', (metadata) => {
  // code
})