WebSocket Unexpected响应代码期间出错:400

时间:2017-03-02 20:00:20

标签: node.js websocket socket.io

我正在尝试获取websockets连接,并且我一直收到以下错误: WebSocket connection to 'ws://localhost:3000/socket.io/?EIO=3&transport=websocket&sid=w6H2vNXXbYIOhwPQAAAA' failed: Error during WebSocket handshake: Unexpected response code: 400

我的代码非常简单 - 在客户端我调用this.socket = io();,在服务器端我正在执行以下操作。我已经注意到关于这个主题的几个相关帖子,并尝试了大量的变化,但似乎没有任何工作。在此先感谢:)

const app = require("http").createServer(handler);
const io = require("socket.io")(app);

app.listen(3000);

class Sockets {
  constructor() {
    this.humanPlayers = [];
    this.socket = io.listen(app);
    this.setEventHandlers();
  }
}

1 个答案:

答案 0 :(得分:0)

您需要侦听与套接字的连接,然后在从Socket.io收到一个实例后创建一个新的Sockets实例。然后,您可以将从Socket.io收到的套接字存储到新的Sockets socket属性中。

const app = require("http").createServer(handler);
const io = require("socket.io")(app);   

class Sockets {
  constructor(socket) {
    this.humanPlayers = [];
    this.socket = socket;
    this.setEventHandlers();
  }
}

app.listen(3000);

io.on('connection', (socket) => {
  let connectedSocket = new Sockets(socket);
});