2013-07-20 13 views
28

socket.io(Node library)を動作させようとしています。Socket.IOクライアント側の.jsファイルはどこにありますか?

私はサーバ側のjsが動作しており、それは聞いています。単にsocket.ioウェブサイトの状態:

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 

これはいいですが、しかし、どのようなJSファイル私は、インポートしています!?!

node_modulesディレクトリに入りました。そこにはnpmからsocket.ioをインストールしました。socket.io/lib/socket.io.jsです。ただし、これはサーバー側です(フレーズrequire()を使用します。これはクライアント上のエラーです)。

私は周りを見回しています。私はクライアントの.jsファイルを動作させることができません。

私には何が欠けていますか?

答えて

35

私は最終的に自分自身でこれに答えることができました。

ページを始めるsocket.ioはこの上明らかではないが、私はsocket.ioのサーバ側が自動的にマニュアルで指定されたディレクトリに、ノードを起動するに.jsファイルホストすることがわかった:

"/socket.io/socket.io.js" 

ウェブアプリケーションの構造にかかわらず、文字通りこのURLをポイントするだけで動作します。

+17

これは、ノードサーバーによって実行中に生成されるファイルです。私はまた、彼らがこれについての言葉を言っていない方法が奇妙であることを発見しました、まるで皆がそこで何が起こっているのか疑問を抱かずに、 – Mahn

+0

そしてそれがうまくいかないときは、私たちは何をしますか?ここで私はS/Oで回答を探しています...(まだ何も見つけていません)。私は魔法が嫌いです。 – jleach

+1

これは、socket-ioサーバー側を実行しているプロセスが、ルートを処理した同じプロセスであるか、HTML/JSを処理している場合にのみ機能します。 - そうでなければ、 'http:// localhost:3466/socket.io/socket.io.js'のようにURL:portを指定する必要があります。私。 (obv)あなたが別のプロセスを参照しようとしているWebアプリケーションを1つ持っている場合は、URL全体を指定する必要があります – mmcrae

4

node_modulesディレクトリがアプリケーションディレクトリの最上位にあるかどうかを確認することをお勧めします。また、ポート番号を指定する必要があると思います。 var socket = io.connect('http://localhost:1337');のようなものを書いてください。ポート番号は1337です。

+0

に位置していますをNPMをインストールしなかった場合同じプロトコルで同じホストとポートで 'var socket = io(); 'を使ってソケットを使うつもりなら、' code'connect'code 'とURLを一緒に呼び出す これはあなたのハンドルを作成します将来の使用のために接続してください。 – Alex

1

HereさまざまなバージョンのCDNがあります。

0

あなたは、クライアントsocket.ioファイルはあなたが見送ることを言及する価値がある可能性がありnode_modules/socket.io-クライアント/ DIST/socket.io.js

関連する問題