客户端在socket.io

时间:2015-11-30 02:25:18

标签: node.js socket.io

我的服务器上有以下代码

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

我该如何解决这个问题? 我不想在浏览器中收到循环。

1 个答案:

答案 0 :(得分:0)

浏览器/套接字未连接到NodeJS。 NodeJS要么没有运行,要么你正在尝试连接到错误的端口 - 在你看来它似乎正在尝试连接到端口80.如果你已经在端口80上运行Apache,你就不能同时运行NodeJS和Apache在同一个端口上,除非你在httpd.conf中设置反向代理。

您可以按照此处的调试说明查看SocketIO可能对您有哪些更具描述性的错误:

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

您也可以在浏览器中访问此网址,并查看其尝试连接的网页:

http://localhost/socket.io/