我看到有websocket端点可以通过Java测试来处理鳍。在日志中我看到了
Connecting to: ws://127.0.0.1:8080/76f48a44-0af8-444c-ba97-3f1ed34afc91/tweets
就像任何其他REST
API一样,我想通过浏览器或卷曲来点击它,但当我这样做时,我会看到
➜ tweetstream git:(master) ✗ curl ws://127.0.0.1:8080/b9b90525-4cd4-43de-b893-7ef107ad06c2/tweets
curl: (1) Protocol ws not supported or disabled in libcurl
和
➜ tweetstream git:(master) ✗ curl http://127.0.0.1:8080/b9b90525-4cd4-43de-b893-7ef107ad06c2/tweets
<html><head><title>Error</title></head><body>Not Found</body></html>%
有没有办法用browser / curl测试websocket API?
答案 0 :(得分:9)
这对我有用:
$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: echo.websocket.org" -H "Origin: http://www.websocket.org" http://echo.websocket.org
来自:http://www.thenerdary.net/post/24889968081/debugging-websockets-with-curl
答案 1 :(得分:7)
如果您的字面意思是测试websockets的实现,我发现Autobahn的测试套件非常有用:http://autobahn.ws/
如果您只想使用websocket进行面条,我建议您使用浏览器(如chrome)中的开发人员工具进行连接并发送/接收数据:
var ws = new WebSocket("ws://127.0.0.1:8080/76f48a44-0af8-444c-ba97-3f1ed34afc91/tweets");
ws.onclose = function() { // thing to do on close
};
ws.onerror = function() { // thing to do on error
};
ws.onmessage = function() { // thing to do on message
};
ws.onopen = function() { // thing to do on open
};
ws.send("Hello World");
答案 2 :(得分:2)
我必须使用此命令才能使其正常工作:
$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: echo.websocket.org" -H "Origin: http://www.websocket.org" -H "Sec-WebSocket-Version: 13" -H 'Sec-WebSocket-Key: +onQ3ZxjWlkNa0na6ydhNg==' http://www.websocket.org
我正在使用Jetty,如果我没有添加Sec-WebSocket-Version / Sec-WebSocket-Key不起作用。仅供记录。
答案 3 :(得分:1)
我写了一个类似WebSocket客户端的cURL。您可以通过此工具发送单个数据框(文本/二进制),然后关闭套接字。您还可以在初始HTTP升级过程中添加HTTP标头。
答案 4 :(得分:0)
我用过这个并发现它非常简单
答案 5 :(得分:0)
出于完整性考虑,我想添加自己的CLI工具:websocat。
$ websocat wss://echo.websocket.org/
qwer
qwer
1234
1234
它不执行问题的“浏览器”部分,但在这种情况下应有效替代“ curl”。
答案 6 :(得分:0)
curl --include \
--no-buffer \
--header "Connection: Upgrade" \
--header "Upgrade: websocket" \
--header "Host: echo.websocket.org" \
--header "Origin: http://echo.websocket.org" \
--header "Sec-WebSocket-Version: 13" \
http://echo.websocket.org
如果您为 WebSocket 端点配置了额外的子协议,请添加标头:
--header "Sec-protocol: protocol-name"
替换 Origin、Host 和 endpoint 以使用您自己的服务器进行测试。如果您启用了基本身份验证,请像这样添加授权标头:
--header "Authorization: Basic RVZCLVAxNzI2MzAzOv"