我的服务器上有以下代码
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
});
});
});
但是,控制台不是在控制台中显示“update_count_message”,而是记录连续的民意调查。
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
我该如何解决这个问题? 我不想在浏览器中收到循环。
答案 0 :(得分:0)
浏览器/套接字未连接到NodeJS。 NodeJS要么没有运行,要么你正在尝试连接到错误的端口 - 在你看来它似乎正在尝试连接到端口80.如果你已经在端口80上运行Apache,你就不能同时运行NodeJS和Apache在同一个端口上,除非你在httpd.conf中设置反向代理。
您可以按照此处的调试说明查看SocketIO可能对您有哪些更具描述性的错误:
http://socket.io/docs/logging-and-debugging/
您也可以在浏览器中访问此网址,并查看其尝试连接的网页: