Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Node.js 是否有办法为grpc节点客户端配置生成方法名称?_Node.js_Microservices_Grpc - Fatal编程技术网

Node.js 是否有办法为grpc节点客户端配置生成方法名称?

Node.js 是否有办法为grpc节点客户端配置生成方法名称?,node.js,microservices,grpc,Node.js,Microservices,Grpc,我希望使用grpc节点客户端,使用Go-micro框架与内置的Go微服务进行对话。我遇到了一个问题,go-micro使用句点()定义方法名来分隔名称空间和方法名,而grpc节点使用斜杠(//code>)。是否仍要配置此模式以使这两个进程相互通信?定义路径的构造如下: 路径→ :路径“/”服务名称“/”{方法名称} 再加上这张便条 一些gRPC实现可能允许覆盖上面显示的路径格式,但强烈建议不要使用此功能。gRPC不会刻意破坏正在使用这种覆盖的用户,但我们并不积极支持它,当路径不是上面所示的形式时,

我希望使用
grpc节点
客户端,使用
Go-micro
框架与内置的
Go
微服务进行对话。我遇到了一个问题,
go-micro
使用句点(
)定义方法名来分隔名称空间和方法名,而
grpc节点
使用斜杠(
//code>)。是否仍要配置此模式以使这两个进程相互通信?

定义路径的构造如下:

路径→ :路径“/”服务名称“/”{方法名称}

再加上这张便条

一些gRPC实现可能允许覆盖上面显示的路径格式,但强烈建议不要使用此功能。gRPC不会刻意破坏正在使用这种覆盖的用户,但我们并不积极支持它,当路径不是上面所示的形式时,某些功能(例如,服务配置支持)将不起作用

因此,Node gRPC客户端遵循规范,go micro使用的替代格式似乎是在其代码生成插件()中硬编码的。我认为这是一个错误。

也就是说,在节点gRPC库中有一个可行的解决方法来匹配该方法名格式。在节点中加载
.proto
文件时,每个客户端构造函数都有一个
服务
成员,它是一个描述服务的普通JavaScript对象。它是方法名称到方法定义的映射,每个方法定义都包含一个
路径
成员。您可以修改每个方法的路径以匹配go micro使用的模式,然后将生成的服务对象传递给
grpc.makeGenericClientConstructor
,以获得连接到修改后的服务的新客户端构造函数