Ale*_*pin 16 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的代码?我认为答案在于Staticmodule(require('socket.io').Static)),但是如果没有编写我自己的替换默认值,我认为无法改变行为方式.
我怎样才能做到这一点?
jos*_*736 23
该resource选项允许您配置socket.io的根目录.它默认为/socket.io.
var io = require('socket.io').listen(app, { resource: '/foo/bar/socket.io' });
Run Code Online (Sandbox Code Playgroud)
请注意,此设置还会影响socket.io的端点的提供位置,因此您还必须在客户端代码中更改此设置.
var socket = io.connect('http://example.com', { resource: 'foo/bar/socket.io' });
Run Code Online (Sandbox Code Playgroud)
(注意我们出于某种原因不使用前导斜杠.)
Lin*_*ink 14
对于socket.io版本1.2.1,这对我有用.
服务器端:
var io = require('socket.io')({path: '/foo/bar'});
Run Code Online (Sandbox Code Playgroud)
客户端:
var socket = io.connect('http://example.com', {path: '/foo/bar'});
Run Code Online (Sandbox Code Playgroud)
仅供参考:http://socket.io/docs/migrating-from-0-9/#configuration-differences
小智 9
如果您使用的是socket.io 1.0版,则配置与以前的版本不同.
对于客户方:
var socket = io.connect('http://localhost:8888', { path: '/some/path/socket.io' });
Run Code Online (Sandbox Code Playgroud)
对于服务器端
var socket = require("socket.io")( { resource: '/some/path/socket.io' });
Run Code Online (Sandbox Code Playgroud)