0

我有一个 grpc-js 服务器设置,带有一个名为 getUsers() 的 rpc 方法。从客户端拨打电话时,尽管发送了 6 条消息,但我只收到了 4 条回复。

这是客户端方法:

const client = new UsersClient(environment.rpcHost);
    const params = new CMSQuery();
    client.getUsers(params).on('data', (message: User) => {
      const obj = message.toObject();
      console.log(`${obj.name} received`);
      this.users.push(obj);
    }).on('end', () => {
      console.log('End of request');
    });

这是服务器方法:

    async getUsers(call: grpc.ServerWritableStream<CMSQuery, User>): Promise<any> {
        const params = call.request.toObject();
        this.collection.find({}).forEach(user => {
            const message = protoFromObject(User, user);
            call.write(message);
            console.log(`${user.name} sent`);
        }).finally(() => {
            console.log('Closing request');
            call.end();
        });
    }

服务器具有以下控制台输出:

User1 sent
User2 sent
User3 sent
User4 sent
User5 sent
User6 sent
Closing Request

然而客户端只有以下控制台输出:

User1 received
User2 received
User3 received
User4 received
End of request

有什么明显的事情会导致这种情况吗?某种超时?谁能给我一些关于我应该在哪里寻找的指示,因为我现在真的被困住了。

谢谢

4

0 回答 0