配置Nginx和Socket.IO

时间:2011-12-21 02:31:39

标签: http nginx websocket socket.io

我正在尝试配置Nginx以使用Socket.IO

我在Socket.IO github wiki中找到了this

我已经安装了Nginx 1.1.10。

server {
  listen 80;
  server_name socket.myserver.com;
  location / {
    proxy_pass http://localhost:3030;
  }
}

以下是我的Socket.io代码

var io = require('socket.io').listen(3030);

io.configure(function() {
        io.enable('browser client etag');
        io.set('transports', [
         'websocket','xhr-polling'
  ]);
});

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

这是我的客户端站点代码

<html>
    <head>
        <script src="http://socket.mysite.com/socket.io/socket.io.js"></script>
        <script>
          var socket = io.connect('http://socket.mysite.com');
          socket.on('news', function (data) {
            console.log(data);
            socket.emit('my other event', { my: 'data' });
          });
        </script>
    </head>
    <body></body>
</html>

我遇到了控制台只显示

的问题
info  - socket.io started
debug - served static content /socket.io.js

我知道它应该创建一些关于“握手和心跳”的日志

我配错了吗?或者我的代码有错误吗?

2 个答案:

答案 0 :(得分:0)

尝试将选项日志级别(默认为3)更改为1或2。

服务器应输出到记录器的详细信息量。

在服务器端

io.set('log level', 1);

答案 1 :(得分:0)

根据您的配置,节点正在侦听端口3333,但是nginx正在尝试将proxy_pass尝试到端口3030.那些需要匹配。