22

基本的なHTTPサーバー(ExpressやConnectなどはありません)を備えたノードサーバーでSocket.IOを使用しています。デフォルトでは、Socket.IOはクライアントファイルを

/socket.io/socket.io.js

そのベースパスを他のパスに変更できるようにしたいと思います。

/foo/bar/socket.io/socket.io.js

これを行うための組み込みの方法、またはSocket.IOのコードを変更せずに行う方法はありますか?答えはStaticモジュール(require('socket.io').Static))にあると思いますが、デフォルトを置き換えるために自分で作成する以外に、動作を変更する方法がありません。

これどうやってするの?

4

4 に答える 4

27

このresourceオプションを使用すると、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' });

(何らかの理由で、ここでは先頭のスラッシュを使用していないことに注意してください。)

于 2012-10-15T21:27:21.223 に答える
18

socket.io バージョン1.2.1の場合、これはうまくいきます。

サーバ側:

var io = require('socket.io')({path: '/foo/bar'});

クライアント側:

var socket = io.connect('http://example.com', {path: '/foo/bar'});

参考までに: http://socket.io/docs/migrating-from-0-9/#configuration-differences

于 2014-12-30T08:29:33.103 に答える
11

socket.ioバージョン 1.0を使用している場合、構成は以前のバージョンとは異なります。

クライアント側の場合:

var socket = io.connect('http://localhost:8888', { path: '/some/path/socket.io' });

サーバー側の場合

    var socket = require("socket.io")( { resource: '/some/path/socket.io' });
于 2014-08-22T02:08:51.187 に答える
2

クライアント側のスクリプトsocket.io.jsはパスにありますnode_modules/socket.io/node_modules/socket.io-client/dist。それを新しいフォルダにコピーし、クライアントからの正しいパスで呼び出します

<script src="/your/path/to/socket.io.js"></script>

詳細な構成については、wikiにアクセスしてください

于 2012-10-10T18:09:29.937 に答える