使用命令测试WebSocket
Linux环境下,分别使用curl和wscat命令测试websocket连接。
前言
有时候我们需要从后台验证WebSocket连接是否正常,判断防火墙是否开通,反向代理是否配置正确等。我一般用下面两种方式进行快速简单的测试。
一、使用wscat测试WebSocket连接是否正常
wscat是一个用来连接websocket的命令行工具,nodejs开发的。
故需要先使用npm安装,然后执行一下即可:
npm install -g wscat
wscat -c ws://echo.websocket.org
正常情况下输出如下:
connected (press CTRL+C to quit)
二、使用curl测试WebSocket连接是否正常
curl-websocket.sh
curl --include \
--no-buffer \
--header "Connection: Upgrade" \
--header "Upgrade: websocket" \
--header "Host: echo.websocket.org" \
--header "Origin: https://echo.websocket.org" \
--header "Sec-WebSocket-Key: NVwjmQUcWCenfWu98asDmg==" \
--header "Sec-WebSocket-Version: 13" \
http://echo.websocket.org
注意这里不需要特定的密钥(Sec-WebSocket-Key),所以随便取一个都可以。该头文件的作用是防止缓存websocket请求。
正常情况下输出如下:
HTTP/1.1 101 Web Socket Protocol Handshake
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Headers: authorization
Access-Control-Allow-Headers: x-websocket-extensions
Access-Control-Allow-Headers: x-websocket-version
Access-Control-Allow-Headers: x-websocket-protocol
Access-Control-Allow-Origin: https://echo.websocket.org
Connection: Upgrade
Date: Tue, 09 Apr 2019 09:57:52 GMT
Sec-WebSocket-Accept: oPhRcOTYgRvrC0D+cTPcN3XYC1k=
Server: Kaazing Gateway
Upgrade: websocket