【问题标题】:Change Socket.IO static file serving path更改 Socket.IO 静态文件服务路径
【发布时间】:2012-10-01 05:38:49
【问题描述】:

我在带有基本 HTTP 服务器(没有 Express 或 Connect 或类似的东西)的 Node 服务器上使用 Socket.IO。默认情况下,Socket.IO 将客户端文件提供给

/socket.io/socket.io.js

我希望能够将该基本路径更改为其他内容,例如

/foo/bar/socket.io/socket.io.js

是否有任何内置方法可以做到这一点,或者任何不改变 Socket.IO 代码的方法?我认为答案在 Static 模块 (require('socket.io').Static)) 中,但没有编写自己的模块来替换默认值,我认为没有办法去改变它的行为方式。

我该怎么做?

【问题讨论】:

    标签: javascript node.js socket.io


    【解决方案1】:

    resource option 允许您配置 socket.io 的根目录。默认为/socket.io

    var io = require('socket.io').listen(app, { resource: '/foo/bar/socket.io' });
    

    请注意,此设置还会影响 socket.io 的端点从何处提供服务,因此您还必须在客户端代码中更改此设置

    var socket = io.connect('http://example.com', { resource: 'foo/bar/socket.io' });
    

    (请注意,出于某种原因,我们在这里不使用前导斜杠。)

    【讨论】:

    • 对于刚到这里的人,这是针对 1.0 之前的版本。对于 1.0 之后,请参阅this 答案。
    【解决方案2】:

    对于 socket.io 版本 1.2.1,这对我有用。

    服务器端:

    var io = require('socket.io')({path: '/foo/bar'});
    

    客户端:

    var socket = io.connect('http://example.com', {path: '/foo/bar'});
    

    仅供参考:http://socket.io/docs/migrating-from-0-9/#configuration-differences

    【讨论】:

    • 我改变了这个,现在我的控制台日志显示了过多的 GET 调用,我可能做错了什么吗??
    【解决方案3】:

    如果您使用的是socket.io 1.0版,则配置与以前的版本不同。

    对于客户端:

    var socket = io.connect('http://localhost:8888', { path: '/some/path/socket.io' });
    

    服务器端

        var socket = require("socket.io")( { resource: '/some/path/socket.io' });
    

    【讨论】:

      【解决方案4】:

      您可以在路径node_modules/socket.io/node_modules/socket.io-client/dist 中找到客户端脚本socket.io.js。将其复制到一个新文件夹并从客户端使用正确的路径调用它

      <script src="/your/path/to/socket.io.js"></script>
      

      更多配置请访问wiki

      【讨论】:

      • 这是唯一对我有用的东西。我将 node.js 的东西放在与静态 .html 页面完全不同的目录中。
      • 不反对,但这是错误的做法。维护和升级(为下一个人或未来的你)刚刚增加了难度。一个友好的顺便说一句,对于任何其他认为这种类型的东西是个好主意的人:这个概念适用于所有插件和扩展——只要坚持原生支持。现在的头疼会在以后节省很多。
      猜你喜欢
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 2015-03-02
      • 2011-10-21
      相关资源
      最近更新 更多