使用nodejs/socket.io和wscat获取"socket hang up"

Kha*_*yen 3 websocket node.js socket.io

我有以下nodejs Web套接字服务器

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(8000);

app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });


});

console.log("Listening on 8000");
Run Code Online (Sandbox Code Playgroud)

尝试连接时使用 wscat

wscat -c ws://localhost:8000/
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

error: Error: socket hang up
Run Code Online (Sandbox Code Playgroud)

它在浏览器中使用以下javascript工作得很好

var socket = io.connect('http://localhost:8000');
socket.on('news', function (data) {
  console.log(data);
  socket.emit('my other event', { my: 'data' });
});
Run Code Online (Sandbox Code Playgroud)

感谢帮助!

Oto*_*lez 8

我建议您在指定传输协议时尝试连接到端点.像这样:

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

这适用于我的情况.