クライアントがストリームをもう聞かないときはいつでも、サーバにキャッチする必要があります。grpcクライアントの切断時に通知を受け取ることはできますか?
function getEvents(call) {
const { type } = call.request
EVENTS
.filter((e) => e.type === type)
.foreach((event) => call.write(event))
call.on('end',() => { console.log('client left...') })
}
私が意図したことは、クライアントが接続し、イベントの種類を指定し、イベントのストリームを受信するということでした。 Ctrl+C
が接続され、 "client left ..."がコンソールに記録されるまで、接続はハングします。
クライアントコードは次のようになります:予想通り
function main() {
const client =
new EventStore('localhost:50051', grpc.credentials.createInsecure())
const call = client.getEvents({ type: 'Done' })
call.on('data', (event) => console.log(event))
}
すべての作業、call.on('end')
のための唯一のコールバックは発火することはありません。私はgRPC Tutorialからこのための基礎を得ましたが、私は何かが欠けているに違いありません。