Socket.io安装程序导致数百个传输轮询GET请求

我正在使用express.js服务器端,并按照socket.io 安装指南 。 不幸的是,套接字连接永远不会成功,而且我收到了不受欢迎的GET请求,如下所示:

在这里输入图像描述

这是我的设置:

客户端 – index.html

<script src="https://cdn.socket.io/socket.io-1.3.7.js"></script> <script> // var socket = io.connect('http://localhost'); var socket = io.connect('http://localhost:9000/'); socket.on('connected', function (serverData) { console.log(serverData); }); </script> 

SERVER – /io/index.js

 'use strict'; var socketio = require('socket.io'); var io = null; module.exports = function(server) { if (io) return io; io = socketio(server); io.on('connection', function(socket) { console.log('Sockets connected!'); socket.emit('connected', 'Sockets connected!') }) return io; }; 

SERVER – app.js

 'use strict'; // Set default node environment to development process.env.NODE_ENV = process.env.NODE_ENV || 'development'; var express = require('express'); var mongoose = require('mongoose'); var config = require('./config/environment'); // Connect to MongoDB mongoose.connect(config.mongo.uri, config.mongo.options); mongoose.connection.on('error', function(err) { console.error('MongoDB connection error: ' + err); process.exit(-1); }); // Populate databases with sample data if (config.seedDB) { require('./config/seed'); } // Setup server var app = express(); var server = require('http').createServer(app); require('./config/express')(app); require('./routes')(app); // Setup sockets require('./io')(server); // Start server function startServer() { server.listen(config.port, config.ip, function() { console.log('Express server listening on %d, in %s mode', config.port, app.get('env')); }); } setImmediate(startServer); // Expose app exports = module.exports = { app: app, server: server } 

当客户端没有到达服务器时,这是最终发生的事情。
客户端一次又一次地尝试。 。 。
为此,你必须检查你的configuration服务器端,检查端口和path往往是你应该检查的第一件事情。

在你的情况下,也许你应该检查这部分:

 //require('./io')(server); typo error ?? require('./io/index.js')(server); 

更进一步,你似乎没有给出好的部分:
(也许取决于你使用的版本)

 // Setup server var app = express(); var server = require('http').createServer(app); require('./config/express')(app); require('./routes')(app); // Setup sockets require('./io')(server); 

我认为这应该是:

 // Setup server var app = express(); var server = require('http').createServer(app); require('./config/express')(app); require('./routes')(app); // Setup sockets //require('./io')(server); |O----------------------------------| require('./io/index.js')(app);//<---we pass app as argument----| 

我希望这能帮到您。