0

getUsers() と呼ばれる rpc メソッドを使用して grpc-js サーバーをセットアップしています。クライアントから電話をかけると、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