[eggjs/egg]如何判断请求是否被客户端关闭?

2024-07-22 269 views
6

在egg下如何判断一个请求是否已被客户端cancel了?我在service中使用this.ctx.req.on(’close',callback),在跑单测的时候会报this.ctx.req.on is not a function

image

相关环境信息
  • 操作系统: MacOS Mojava
  • Node 版本:v12.10.0
  • Egg 版本:v2.6.1

回答

2

egg-mock 里面的 req 是一个 mockContext,没有挂上这些方法。

啥场景下需要判断客户端 cancel ?

1

比如在做匹配功能的时候,客户端关闭连接时要自动从匹配池剔除。采用long pull的方式如何实现判断客户端是否断连呢 ?

2

用 mm.cluster 的方式测试吧

3

@atian25 emm,具体应该如何操作?

3

@atian25 需要在生产环境中 而非 单元测试中检测。

9

你不是写单测么?

8

@atian25 实际跑时也需要通过后端service来检测并执行相应代码逻辑呀。

7

this.ctx.req 是 Node 自带的 req 实例, egg 没做什么修改。

7

@atian25 嗷,所以只是 在单元测试时的ctx是mock的,线上环境还是Node自带的req实例是么

3

好的,谢谢