我在一个模拟服务器中模拟Kubernetes API的一些端点进行一些集成测试,并在端点/apis/batch/v1/watch/namespaces/{namespace}/jobs?watch=true
(doc,需要在页面中搜索batch/v1/watch
)的实现中卡住了。客户端使用此方法发出GET请求,并保持连接打开以接收与作业资源相关的事件。显然,它处理一个'socket'事件。
我实现了一个简单的mock端点,它返回了我想要的数据,但是在发出请求时,我得到了这个错误:
Error: socket hang up
at connResetException (node:internal/errors:691:14)
at Socket.socketOnEnd (node:_http_client:466:23)
at Socket.emit (node:events:538:35)
at endReadableNT (node:internal/streams/readable:1345:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
这个mock应该如何实现?我需要返回一个套接字吗?我应该如何做?
1条答案
按热度按时间u7up0aaq1#
回答我自己的问题:尝试了几次之后,我所需要做的就是使用
res.write()
和一个以换行符结尾的字符串,如下所示:上面的代码在所有消息发送完后保持连接活动事件,要关闭连接需要调用
res.end()
;