连接到测试 websocket 服务器有效,但连接到我的 Node.js 服务器失败

Connecting to a test websocket server works, but connecting to my Node.js server fails

本文关键字:连接 服务器 Node js 失败 我的 有效 测试 websocket      更新时间:2023-09-26

我正在使用下面的代码在我的浏览器上测试websockets:

this.webSocket = new WebSocket("ws://echo.websocket.org");
this.webSocket.onopen = function(evt) {
  cc.log("Send Text WS was opened.");             
};
this.webSocket.onmessage = function(evt) {
  this.socketSendTextTimes++;
  var textStr = "response text msg: " + evt.data + this.socketSendTextTimes;
  cc.log(textStr);
};
代码

运行良好,但是如果我连接到运行以下代码的自己的服务器:

var http = require('http');
var io = require('socket.io');
var server = http.createServer(function(req, res) { 
  // Send HTML headers and message
  res.writeHead(200,{ 'Content-Type': 'text/html' }); 
  res.end('<h1>Hello!</h1>');
});
var socket = io.listen(server);
socket.set('destroy upgrade', false);
socket.on('connection', function(client) {   
  client.on('message', function(event) { 
    console.log('Received message from client!', event);
  });
  client.on('disconnect', function() {
    console.log('Server has disconnected');
  });
});
server.listen(8080);
console.log('start to listen');

我的浏览器显示:

hello!

但是侦听套接字不执行任何操作。如何使用 websocket 连接到 Socket.IO 服务器?

Socket.IO 使用与本机 websocket 不同的传输方法,即使在模拟 websocket 本身时也是如此。您将需要客户端库才能连接到 Socket.IO 套接字。