gpt4 book ai didi

node.js - grpc 客户端断开连接时我可以收到通知吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:54 24 4
gpt4 key购买 nike

只要客户端不再监听流,我就需要在服务器中捕获。我认为这样可以:

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获得了这方面的基础知识但我一定错过了一些东西。

最佳答案

客户端突然断开连接,而没有正确地与服务器通信,最终应该在服务器上触发“取消”事件。这就是你应该倾听的。我还建议在发生这种情况时采用某种方法来停止写入流。

您的方法看起来像一元请求/流响应方法。这意味着在服务器端,您有一个可写流,并且可写流没有“结束”事件。这是可读流上的一个事件,表明您已阅读完毕。

关于node.js - grpc 客户端断开连接时我可以收到通知吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46700751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com