Javascript 如何从ws-client连接socket.io?
我有一个非常简单的socket.io聊天示例,服务器端代码如下: 客户端使用套接字io代码进行连接,工作正常: 但它无法连接,出现以下错误:Javascript 如何从ws-client连接socket.io?,javascript,websocket,socket.io,Javascript,Websocket,Socket.io,我有一个非常简单的socket.io聊天示例,服务器端代码如下: 客户端使用套接字io代码进行连接,工作正常: 但它无法连接,出现以下错误: error: Error: socket hang up 我的urlws://localhost:3000是否错误?如何让它工作 PS:你可以在Chrome开发工具中看到这个项目并尝试它,我找到了真正的websocket url,它应该是: ws://localhost:3000/socket.io/?EIO=3&transport=webs
error: Error: socket hang up
我的urlws://localhost:3000
是否错误?如何让它工作
PS:你可以在Chrome开发工具中看到这个项目并尝试它,我找到了真正的websocket url,它应该是:
ws://localhost:3000/socket.io/?EIO=3&transport=websocket
将此url与wscat配合使用效果良好同意@freewind的回答,我想对详细描述进行更深入的讨论
ws://localhost:3000/socket.io/?EIO=3&transport=websocket
该规范可以描述为
+----------------+--------------------+
| Elm | Desc |
+----------------+--------------------+
| WS | scheme |
| localhost:3000 | host |
| socket.io | path |
| EIO=3 | EngineIO version 3 |
| transport | websocket |
+----------------+--------------------+
如果传输设置为websocket
,则在升级与websocket协议的连接时,可以使用任何websocket客户端对其进行测试
我们可以很容易地使用进行测试和调试。连接如下图所示
是的GUI客户端。
1。SocketIO
以下屏幕的配置如下所示
import io from "socket.io-client";
const socket = io( "http://localhost:3000/socket.io",
{
"path": "/socketio",
"transports": [
"websocket"
]
}
);
2。WebSocket
对于相同的套接字端点,我们可以使用WebSocket客户端对其进行测试,如下图所示
-WS-connection
-WS-feed数据
这对我很有效。您是如何发现这一点的/ws://localhost:3000不起作用有什么原因吗?如果它已部署到弹性Beanstalk上的生产环境中,我将如何做到这一点?我用我的服务器IP替换了localhost,但我没有得到任何回报,但当我使用localhost时,它可以工作@尼什奇-dhanani@NathanielBabalola真奇怪。您想加入Discord服务器吗?我们将在那里深入讨论。乍一看,这可能是CORS的问题。好的,刚刚给你发了消息@nishchit dhanani
ws://localhost:3000/socket.io/?EIO=3&transport=websocket
+----------------+--------------------+
| Elm | Desc |
+----------------+--------------------+
| WS | scheme |
| localhost:3000 | host |
| socket.io | path |
| EIO=3 | EngineIO version 3 |
| transport | websocket |
+----------------+--------------------+
import io from "socket.io-client";
const socket = io( "http://localhost:3000/socket.io",
{
"path": "/socketio",
"transports": [
"websocket"
]
}
);