使用socket.io nodejs提供自定义静态文件

时间:2012-06-30 13:29:38

标签: node.js static socket.io share

我尝试在服务器和客户端之间共享我的代码我使用以下代码(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);
});

我的文件结构如下:

    • app.js
    • 公共
      • test.js
  1. 当我输入“http:// localhost:8000 / public.test.js”浏览器下载默认文件“欢迎来到socket.io”

1 个答案:

答案 0 :(得分: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'
});

文档指向their own Static library的工作实施。