Javascript 更改Socket.IO静态文件服务路径
我在带有基本HTTP服务器的节点服务器上使用Socket.IO(没有Express或Connect之类的)。默认情况下,Socket.IO将客户端文件提供给 /socket.io/socket.io.js 我希望能够将基本路径更改为其他路径,例如 /foo/bar/socket.io/socket.io.js 有没有什么内置的方法可以做到这一点,或者没有改变Socket.IO代码的方法?我认为答案在于Javascript 更改Socket.IO静态文件服务路径,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我在带有基本HTTP服务器的节点服务器上使用Socket.IO(没有Express或Connect之类的)。默认情况下,Socket.IO将客户端文件提供给 /socket.io/socket.io.js 我希望能够将基本路径更改为其他路径,例如 /foo/bar/socket.io/socket.io.js 有没有什么内置的方法可以做到这一点,或者没有改变Socket.IO代码的方法?我认为答案在于Static模块(require('socket.io').Static)),但除了编写自己的代
Static
模块(require('socket.io').Static)
),但除了编写自己的代码来替换默认值之外,我认为没有办法改变行为方式
如何执行此操作?您可以在路径
node\u modules/socket.io/node\u modules/socket.io client/dist
中找到客户端脚本socket.io.js
。将其复制到新文件夹,并使用客户端的正确路径调用它
<script src="/your/path/to/socket.io.js"></script>
有关更多配置,请访问允许您配置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' });
(注意,出于某些原因,此处不使用前导斜杠。)如果您使用的是socket.io版本1.0,则配置与以前版本不同 对于客户端:
var socket = io.connect('http://localhost:8888', { path: '/some/path/socket.io' });
var socket = io.connect('http://example.com', {path: '/foo/bar'});
对于服务器端
var socket = require("socket.io")( { resource: '/some/path/socket.io' });
对于socket.io版本1.2.1,这对我很有用 服务器端:
var io = require('socket.io')({path: '/foo/bar'});
客户端:
var socket = io.connect('http://localhost:8888', { path: '/some/path/socket.io' });
var socket = io.connect('http://example.com', {path: '/foo/bar'});
仅供参考:这是唯一对我有用的东西。我把node.js文件放在与static.html页面完全不同的目录中。不是向下投票,但这样做是错误的。维护和升级(对于下一个家伙,或者未来的你)的难度增加了。对于任何认为这类事情是好主意的人来说,这是一个友好的BTW:这个概念适用于所有插件和扩展-只需坚持本机支持即可。现在的头痛会为以后节省很多。对于那些刚到这里的人来说,这适用于1.0之前的版本。关于1.0之后的内容,请参阅答案。我更改了此选项,现在我的控制台日志显示GET调用过多,我可能做错了什么吗??