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);
});

私のファイル構造は次のようになります。

    • app.js
    • 公衆
      • test.js

「http:// localhost:8000 / public.test.js」と入力すると、ブラウザのダウンロードデフォルトファイル「Welcometosocket.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 に答える