読者です 読者をやめる 読者になる 読者になる

taiyoh's memorandum

@ttaiyoh が、技術ネタで気づいたことを書き溜めておきます。

socket.ioで下層パスで通信する

 メモ書き。例えば/path/toなんてパスの下でコンテンツの表示もsocket.ioの通信もしたい時。

// in node
var app_path = "/path/to/app";
io.set('resource', app_path);
io.of(app_path).on('connect', function() {
  // do something
});

 とやって、表示するHTMLでsocket.io.jsを取得する際に

<script src="/path/to/app/socket.io/socket.io.js"></script>
<script type="javascript">
var socket = io.connect('http://' + location.hostname, {
  'resource': 'path/to/app'
});
</script>

 という感じで指定する。
 キモはnode側でresourceとofメソッドの引数に同じものを入れることと、クライアント側でio.connectのオプションにnode側と同じ(でも頭の/はない)resourceを入れておくことか。
 別のパスで別のsocket.ioのアプリを立てたい時なんかに使える。