如何使用带有socket.io和node.js的动态端口#?

时间:2011-12-01 22:23:12

标签: node.js socket.io

当我将socket.io与node.js服务器一起使用时,我通常使用以下代码(来自socket.io官方网站)。

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

如你所见,我很难用端口号对我的服务器ip进行编码。有没有办法在node.js服务器中设置变量然后在我的客户端代码上使用该变量?

目前,我正在使用cookie。

2 个答案:

答案 0 :(得分:1)

实际上有两个基本选项。如果您的socket.io客户端在与您的页面相同的地址上运行,请使用:

io.connect(document.location.href);

或者,您可以使用template engine将数据从服务器注入客户端页面。

答案 1 :(得分:1)

在最新版本的Socket.IO中,您只需拨打io.connect()即可自动发现该网址。