首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当grpc客户端断开连接时,可以通知我吗?

当grpc客户端断开连接时,可以通知我吗?
EN

Stack Overflow用户
提问于 2017-10-12 03:05:02
回答 1查看 2.3K关注 0票数 1

每当客户端不再侦听流时,我就需要在服务器中捕获。我以为这样就行了

代码语言:javascript
运行
复制
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和“客户端离开.”将被记录到控制台。

客户端代码类似于:

代码语言:javascript
运行
复制
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教程那里得到了这方面的基本知识,但我肯定遗漏了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-12 15:57:03

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

您拥有的方法看起来像一个一元请求/流响应方法。这意味着在服务器端,您有一个可写流,而可写流没有“结束”事件。这是一个可读流上的事件,以指示您已完成读取。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46700751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档