如何在 grpc-js 服务器中添加多个服务?
How to add multiple services in grpc-js server?
假设我有如下所示的 .proto 文件:
service SvcOne{
rpc MehtodOne(RequestOne) returns (ResponseOne) {}
}
service SvcTwo{
rpc MethodTwo(RequestTwo) returns (ResponseTwo) {}
}
message RequestOne {
string field_req= 1;
}
message ResponseOne {
string field_res = 1;
}
message RequestTwo {
string field_req= 1;
}
message ResponseTwo {
string field_res = 1;
}
然后我尝试如下代码:
const server = new grpc.Server();
server.addService(protoSchema.SvcOne.service, {MehtodOne: MethodOne});
server.addService(protoSchema.SvcTwo.service, {MethodTwo: MethodTwo});
server.bindAsync(
"0.0.0.0:50051",
grpc.ServerCredentials.createInsecure(),
(err) => {
if (err) {
console.log("Error!");
} else {
routeServer.start();
console.log("Server ready...");
}
}
);
但是出现了这样的错误:
TypeError: Cannot read property 'service' of undefined
所以我想我错过了介于两者之间的一些东西。
问题:
如何在 grpc-js 服务器中绑定多个服务(SvcOne 和 SvcTwo)?或者这在 grpc-js 中是不可能的?
请参考route_guide_server, did you load definition before add start server like this?
对于这种情况,我正在做的是在一个原型文件中的它自己的块上定义不同的服务。
package servicePackage;
service Service1 {
rpc Get(Empty) returns (Empty);
rpc Insert(Empty) returns (Empty);
rpc Remove(Empty) returns (Empty);
rpc Update(Empty) returns (Empty);
}
service Service2 {
rpc Get(Empty) returns (Empty);
rpc Insert(Empty) returns (Empty);
rpc Remove(Empty) returns (Empty);
rpc Update(Empty) returns (Empty);
}
然后在 addService 上只使用每个服务名称
server.addService(grpcPackage.Service1.service, {
Insert: async (call, callback) => {
callback(null, null);
},
});
server.addService(grpcPackage.Service2.service, {
Insert: async (call, callback) => {
callback(null, null);
},
});
其余的如绑定、protoLoading、server.start()保持不变。
假设我有如下所示的 .proto 文件:
service SvcOne{
rpc MehtodOne(RequestOne) returns (ResponseOne) {}
}
service SvcTwo{
rpc MethodTwo(RequestTwo) returns (ResponseTwo) {}
}
message RequestOne {
string field_req= 1;
}
message ResponseOne {
string field_res = 1;
}
message RequestTwo {
string field_req= 1;
}
message ResponseTwo {
string field_res = 1;
}
然后我尝试如下代码:
const server = new grpc.Server();
server.addService(protoSchema.SvcOne.service, {MehtodOne: MethodOne});
server.addService(protoSchema.SvcTwo.service, {MethodTwo: MethodTwo});
server.bindAsync(
"0.0.0.0:50051",
grpc.ServerCredentials.createInsecure(),
(err) => {
if (err) {
console.log("Error!");
} else {
routeServer.start();
console.log("Server ready...");
}
}
);
但是出现了这样的错误:
TypeError: Cannot read property 'service' of undefined
所以我想我错过了介于两者之间的一些东西。
问题: 如何在 grpc-js 服务器中绑定多个服务(SvcOne 和 SvcTwo)?或者这在 grpc-js 中是不可能的?
请参考route_guide_server, did you load definition before add start server like this?
对于这种情况,我正在做的是在一个原型文件中的它自己的块上定义不同的服务。
package servicePackage;
service Service1 {
rpc Get(Empty) returns (Empty);
rpc Insert(Empty) returns (Empty);
rpc Remove(Empty) returns (Empty);
rpc Update(Empty) returns (Empty);
}
service Service2 {
rpc Get(Empty) returns (Empty);
rpc Insert(Empty) returns (Empty);
rpc Remove(Empty) returns (Empty);
rpc Update(Empty) returns (Empty);
}
然后在 addService 上只使用每个服务名称
server.addService(grpcPackage.Service1.service, {
Insert: async (call, callback) => {
callback(null, null);
},
});
server.addService(grpcPackage.Service2.service, {
Insert: async (call, callback) => {
callback(null, null);
},
});
其余的如绑定、protoLoading、server.start()保持不变。