使用curl进行WebSocket服务器健康检查

5

我正在尝试使用curl为WebSocket服务器实现健康检查。

curl --include --no-buffer \
    --header "Connection: Upgrade" \
    --header "Upgrade: websocket" \
    --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
    --header "Sec-WebSocket-Version: 13" \
    http://localhost:3000

我发送了一个HTTP请求进行握手,预期会收到HTTP 101

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: qGEgH3En71di5rrssAZTmtRTyFk=

我的问题是,收到响应后,curl 将一直挂起。

有没有办法告诉 curl 在成功握手后退出?

1个回答

5

您可以使用Connection: close代替Connection: Upgrade,以指定在响应完成后关闭连接:

curl --include --no-buffer \
    --header "Connection: close" \
    --header "Upgrade: websocket" \
    --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
    --header "Sec-WebSocket-Version: 13" \
    http://localhost:3000

我能否使用Node.js的http模块进行编程实现这个翻译?https://nodejs.org/api/http.html - PirateApp
这种方法是否被认为是执行相同请求的有效方式?https://pastebin.com/xhAqpHkH - PirateApp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接