socket.io使用時に"/<任意path>/socket.io/socket.io.js"が見つからない(404 Not Found)

909 views
Skip to first unread message

r y

unread,
Dec 10, 2013, 7:48:04 AM12/10/13
to node...@googlegroups.com
お世話になります。
ハンドルネーム、ryと申します。

現在、nginxとnode.jsを使用した環境を構築しております。
nginxでは、URL(1)でリクエストを受け付けると、URL(2)という形にURLを書き換えて、
バックエンドのnode.jsに渡します。nginxはURI部分(^/abc/chat/)をそのまま渡すという仕様になっております。

 |
 |

node.jsではsocket.ioを使用して、サンプルチャットアプリを動かしているのですが、
socket.ioは、socket.io.jsを"^/socket.io/socket.io.js"というURIで自動生成し、ブラウザへ返します。
これを"^/abc/socket.io/socket.io.js"という形で自動生成し、アクセスできる様にしたいのですが、
現在、node.js or socket.ioにおいて、これというパラメータ設定が見つかりません。

TomcatでいうContext PATHに相当するものだと思うのですが、
sochet.ioが、"^/socket.io/socket.io.js"生成時に、前提PATHを付与する様な設定はあるのでしょうか?
よろしくお願いします。

 ※nginx側で"^/socket.io/socket.io.js"を"^/abc/socket.io/socket.io.js"に書き換えてバックエンドに渡す、
  という実装方法もあると思いますが、諸事情によりnode.js側で対応したいと思います。

r y

unread,
Dec 12, 2013, 1:31:22 AM12/12/13
to node...@googlegroups.com
自己レスです。解決しました。
念のため、報告しておきます。

クライアントスクリプト(socket.io.js)へのPATHとなる"^/socket.io/socket.io.js"はハードコードされているのですが、
resourceオプションを使用することで任意に設定可能と、ドキュメントおよびStackOverflowに投稿されていました。

 ・ドキュメント:  ソースファイルのHistory.mdとsocket.io-client/README.md

■サンプル(サーバ)
io.set('resource', '/abc/socket.io');

■サンプル(クライアント)
var socket = io.connect('https://example.com', { resource: 'abc/socket.io' });

https://example.com/abc/socket.io/socket.io.jssocket.io APIに接続可能になりました。

以上です。よろしくお願いします。
Reply all
Reply to author
Forward
0 new messages