cURL 请求节点上的 Socket IO (Express)

30s*_*sam 2 javascript websocket node.js express socket.io

我们希望能够在不使用 SocketsIOClient(它确实有效!)、使用 cURL(或其他命令行工具)的情况下,在我们的 Node (Express) 后端测试 Socket IO 连接。

我发现了以下内容:

curl --verbose -i -N -H "Upgrade: websocket" -H "Connection: Upgrade" http://<API_URL>:<PORT>
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用。即使在http://localhost:3000本地使用和运行,它也不起作用。这是回应:

*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 3000 (#0)
> GET / HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.64.1
> Accept: */*
> Upgrade: websocket
> Connection: Upgrade
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
* Closing connection 0
Run Code Online (Sandbox Code Playgroud)

Žel*_*vić 6

npx wscat -c ws://localhost:3000/socket.io/\?transport=websocket
Run Code Online (Sandbox Code Playgroud)

这对我建立 WebSockets 连接有用

如果输出的最后一行是< 40,则可以使用以下命令发出带有消息的"event-name"事件"new message"

> 42["event-name","new message"]
Run Code Online (Sandbox Code Playgroud)