3

我尝试在使用以下代码(app.js)的服务器和客户端之间共享我的代码:

var io = require('socket.io').listen(8000), 
  Static = require('socket.io').Static; 

io.configure(function () {
  var _static = new Static(io); 

  // some methods to add my custom files 

  _static.add('\public\test.js');
  io.set('static', _static);
});

我的文件结构如下所示:

    • 应用程序.js
    • 上市
      • 测试.js

当我输入“http://localhost:8000/public.test.js”时浏览器下载默认文件“Welcome to socket.io”

4

1 回答 1

7

这个问题相当古老,但这是当前的方法(对于 v0.9):

var io = require('socket.io').listen(8000);
io.static.add('/path/for/request.js', {file: 'path/to/file.js'});

请注意,资源的路径是相对于 socket.io 路径的,因此请求 URI 将类似于:

http://localhost:8000/socket.io/path/for/request.js

如果您看到类似 的错误Protocol version not supported,则表示您的请求 URI 可能具有管理器不支持的扩展名。以下是添加该支持的方法:

io.static.add('/path/for/request.foo', {
  mime: {
    type: 'application/javascript',
    encoding: 'utf8',
    gzip: true
  },
  file: 'path/to/file.js'
});

文档指向他们自己的静态库以实现工作。

于 2012-10-24T21:09:46.000 回答