Node.js Socket.IO和express无法连接

Node.js Socket.IO和express无法连接,node.js,sockets,socket.io,ecmascript-6,Node.js,Sockets,Socket.io,Ecmascript 6,我正在尝试使用Socket.IO和Express为WebRTC构建一个简单的信令服务器。我以前从未使用过Express或Socket.IO,所以我想我只需要运行几个示例(使用ES6)。毫不奇怪,我在连接服务器时遇到了麻烦。有人能提供建议吗?这是我的最基本的服务器,直接从文档中获得,作为指南修改为ES6 import http from 'http'; import express from 'express' import SocketIO from 'socket.io' let app =

我正在尝试使用Socket.IO和Express为WebRTC构建一个简单的信令服务器。我以前从未使用过Express或Socket.IO,所以我想我只需要运行几个示例(使用ES6)。毫不奇怪,我在连接服务器时遇到了麻烦。有人能提供建议吗?这是我的最基本的服务器,直接从文档中获得,作为指南修改为ES6

import http from 'http';
import express from 'express'
import SocketIO from 'socket.io'

let app = express();
let server = http.Server(app);
let io = new SocketIO(server);

app.get('/', (req, res) =>{
    res.send('hi');
});

io.on('connection', (socket) => {
    "use strict";
   socket.emit('news', {hello: 'world'});
   socket.on('my other event', (data) => {
       console.log(data)
   })
});

server.listen(80, () => {
    "use strict";
    console.log('Listening on port 80');
});
我正在使用npm的
wscat
实用程序,每次尝试连接时,我都会得到以下结果:

我尝试过使用DEBUG环境变量,但它似乎没有多大作用。我还尝试按照最后一行执行ws://localhost:80/socket.io,但没有成功:

好吧,看来套接字连接比我使用socket.IO时想象的要复杂一些。上面提到的服务器实际上没有什么问题,但是简单地使用
wscat
并尝试只连接到
ws://localhost
是不正确的。我认为它只适用于WebSocket,但如果您使用的是Socket.IO,情况就不同了。Windows shell中使用
wscat
实用程序(在我的情况下)连接我的设置的完整命令必须是

注意端点是
/socket.io/
。您也可以从这里使用此URL(小心转义):


您还可以尝试
iocat
npm包,它似乎像我一开始尝试做的那样简化了它

io是webSocket顶部的附加层。无法连接webSocket->socket.io,反之亦然。您需要一个socket.io客户端来连接到socket.io服务器。
wscat -c ws://localhost:80/socket.io/\?transport=websocket
ws://localhost:3000/socket.io/?EIO=3&transport=websocket