如何连接Socket.io一次?

时间:2011-05-06 17:18:56

标签: javascript websocket socket.io

我正在使用socket.io。它运作良好,但我对性能有一个短暂的怀疑。我不确定我是否熟悉连接。

这是我的客户端脚本(jade模板语言):

!!! 5
html
  head
    title Foo
    script(type='text/javascript', src='/javascript/socket.io.min.js')
    script(type='text/javascript')
      socket = new io.Socket('localhost', 3000);
      socket.connect();
      socket.on('message', function(data) {
      });
  body

此脚本在每个页面上加载(因为它是我的布局页面)。所以在每个页面上,套接字连接到服务器套接字。这是我的问题,我不喜欢这个想法。

是否可以将一次客户端套接字连接到每个客户端页面的服务器套接字?

此外,是否可以加载一次(每个客户端)/javascript/socket.io.min.js库?

感谢。

2 个答案:

答案 0 :(得分:1)

  

是否可以将客户端套接字连接到每个客户端页面的服务器套接字?

检查pjax,我希望它会对您有所帮助。

答案 1 :(得分:0)

为什么不让服务器将页面数据流式传输到客户端(使用AJAX调用或使用套接字),并在用户单击链接时将内容div替换为页面数据?

使用a href="my_page",而不是使用a href="#my-page",并在查看document.location.hash的所有a元素上添加点击事件监听器,以确定用户正在尝试的“页面”拜访。首次加载页面时,您还需要查看document.location.hash,以防用户在最后直接访问包含#my_page的网址。

如果您希望“自然”网址按预期运行(例如。GET /my_page),您可以让服务器在处理POST请求时作为AJAX调用进行响应,但返回整页每当使用div时,预先填充主GET个内容。