Il lato client riceve il polling su socket.io

Ho il seguente codice sul mio server

var socket = require( 'socket.io' ); var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = socket.listen( server ); var port = process.env.PORT || 3000; server.listen(port, function () { console.log('Server listening at port %d', port); }); io.on('connection', function (socket) { socket.on( 'new_count_message', function( data ) { io.sockets.emit( 'new_count_message', { new_count_message: data.new_count_message }); }); socket.on( 'update_count_message', function( data ) { io.sockets.emit( 'update_count_message', { update_count_message: data.update_count_message }); }); socket.on( 'new_message', function( data ) { io.sockets.emit( 'new_message', { name: data.name, email: data.email, subject: data.subject, created_at: data.created_at, id: data.id }); }); }); 

Ma invece di mostrare “update_count_message” nella console, la console registra un stream continuo di sondaggi.

 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081140-15 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850080247-12 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850080252-13 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081252-16 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081290-17 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081351-18 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081416-19 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081474-20 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081532-21 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081576-22 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081651-23 

Come posso risolvere questo? Non voglio ricevere un loop nel browser.

Il browser / socket non si connette a NodeJS. NodeJS non è in esecuzione, o stai tentando di connettersi alla porta sbagliata – nel tuo caso sembra che stia cercando di connettersi alla porta 80. Se hai già Apache in esecuzione sulla porta 80, non puoi eseguire sia NodeJS che Apache sulla stessa porta a meno che non si configuri un proxy inverso nel proprio httpd.conf.

Puoi seguire le istruzioni di debug qui per vedere quali più errori descrittivi SocketIO potrebbe avere per te:

http://socket.io/docs/logging-and-debugging/

Puoi anche accedere a questo URL nel browser e vedere a quale pagina si sta tentando di connettersi:

http: //localhost/socket.io/