2013年8月13日火曜日

Socket.ioのサブディレクトリパスを変更する方法

/socket.ioではなく、他のものに変更したかった

最近受け持っている案件がhttpsの都合上ドメインが固定なので、/socket.ioだと、すぐに他のがsocket.ioを使いだすとかぶっちゃうということで、パスで切り替えたかった。
意外と情報がなかったので、忘れっぽいし備忘録としてざっとまとめておこう。

nginx1.4からはWebSocketもproxyできるようになったので、早速試してみました。

ちなみに試した環境は、

  • Node.JS 0.10.15
  • Socket.IO 0.9.10
/socket.io を/socketにする例です。

app.js

node.js側のスクリプトはこんな感じで、io.setを使うのがポイント

Loading ....

nginx.conf

nginxの設定は、serverディレクティブ内に記述。

Loading ....

index.html

かなり適当なので、開発者用ツールのコンソールを見て動作確認するくらいしか方法はないけど、これを改造して行けばいいのさ。

ちなみに、socket.ioのサイトにある例の/chat /newsのようにチャンネル?を分ける場合は、/socket/chat /socket/news となる。
もっと具体的に書くと

var socket = io.connect('http://hogehoge/socket/chat', {resource: 'socket'});
Loading ....

0 件のコメント: