0
每當客戶端不再監聽流時,我需要捕捉服務器。我認爲這會做: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
,並且「客戶端左...」將被記錄到控制檯。
客戶端代碼將是這樣的:
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得到了這個基礎知識,但我必須缺少一些東西。