Node js – Socket.io-client没有连接到socket.io服务器

我正在尝试使用以下代码连接到一个socket.io客户端:

服务器:

// Load requirements var http = require('http'), io = require('socket.io'); // Create server & socket var server = http.createServer(function(req, res){ // Send HTML headers and message res.writeHead(404, {'Content-Type': 'text/html'}); res.end('<h1>Aw, snap! 404</h1>'); }); server.listen(8080); io = io.listen(server); // Add a connect listener io.sockets.on('connection', function(socket) { console.log('Client connected.'); // Disconnect listener socket.on('disconnect', function() { console.log('Client disconnected.'); }); }); 

客户:

 console.log('1'); // Connect to server var io = require('socket.io-client') var socket = io.connect('localhost:8080', {reconnect: true}); console.log('2'); // Add a connect listener socket.on('connect', function(socket) { console.log('Connected!'); }); console.log('3'); 

我没有连接控制台日志或客户端连接控制台日志,我不知道为什么! 代码示例是从另一个问题发布: 链接 ,我没有看到任何解决scheme的问题…

假设您正在使用大于1.0的socket.io版本,请在服务器上更改:

 // Add a connect listener io.sockets.on('connection', function(socket) { console.log('Client connected.'); // Disconnect listener socket.on('disconnect', function() { console.log('Client disconnected.'); }); }); 

对此:

 // Add a connect listener io.on('connection', function(socket) { console.log('Client connected.'); // Disconnect listener socket.on('disconnect', function() { console.log('Client disconnected.'); }); }); 

请参阅此处的socket.io文档参考 。


您不希望仅在已连接的套接字上收听此事件。 你想在任何套接字上听这个事件,甚至是新创build的套接字。


另外,在互联网上随机读取socket.io代码时要非常小心。 有些东西从v0.9到v1.0发生了很大的变化(我不知道这是否是其中之一)。 您通常应该首先从socket.io文档站点开始,因为它始终代表最新版本。 然后,如果查看其他互联网参考,请确保您仅使用2014年中以后的文章。 如果你不知道一篇文章的年代,那么最好不要在最近的一篇文章中没有佐证。

你也需要添加协议与path。

更改

 var socket = io.connect('localhost:8080', {reconnect: true}); 

 var socket = io.connect('http://localhost:8080', {reconnect: true}); 

你可以使用localhost。 它也适用于我。 您必须使用您的IP地址和端口适合您