2012-05-12 28 views
4

私はfreebsdサーバー上でnode.jsアプリケーションを実行しようとしていますが、socket.ioライブラリを使用してそれを処理することはできません。私は含めて試してみた:Node.js socket.io.jsが見つかりません。またはioが定義されていません

404エラーを与え、(それは私のpublic_htmlフォルダにある場合、すなわち)私は、ファイルに直接リンクする場合、私はIOない定義されたエラーを取得し
<script src="/socket.io/socket.io.js"></script> 

。事前に

おかげ

答えて

10

がそれで、この単一のラインを持っており、そのノードでそれを実行し、別のNode.jsアプリケーションを作成してみてください。 JSブラウザの訪問http://127.0.0.1:8000で次に

var io = require('socket.io').listen(8000); 

、あなたは「友好を取得する必要がありますようこそsocket.ioへ」挨拶。これを取得している場合は、socket.ioが実行され、socket.io.jsファイルが提供されます。

私が考えている唯一の事は、クライアントファイルの代替ポートにリンクしていない可能性があるということです。あなたは今

<script src="http://127.0.0.1:8000/socket.io/socket.io.js"> </script> 

にsocket.ioセット用スクリプトのソースを持っているクライアントのファイルを作成するためにポート80上で実行されている特急にsocket.ioサーバを実行している場合を除きこれは、ソケットに接続する必要があります。ポート8000​​で実行されているsocket.io.jsファイルを取得します。

+0

ありがとう、これは起こらなかった、私はそれを修正する方法について見ていきます。 –

+0

私はとても混乱しています。私は同じ問題を抱えていますが、これはうまくいきます。別のサーバーを稼働させずに修正したいと思っています。 「私が考えることができる唯一の他の事は、クライアントファイルの代替ポートにリンクしていない可能性があるということです。」ということは、ポート3200でエクスプレスを使用していますか?私はポート3200でクライアントのjsファイルをサーバーするためにsocket.ioと関係がありますか? –

3

あなたのNode.jsアプリケーションは、まだそれを提供しなければならない - それは自動的に提供されません。あなたのサーバーには何がありますか?

var app = require('express').createServer();          
var io = require('socket.io').listen(app); 

または類似のもの(listenが重要です)である必要があります。場所はディスク上の実際の場所ではありません - socket.ioライブラリは私が理解する限りURLを傍受してクライアント側ライブラリに提供する必要があります。

+0

私はこれらの行をすでに持っていますが、ありがとう、 –

0

はボディパーサーの後に次の行を追加します。

, express.static(__dirname + "/public") 

だから、のようなもの:

var app = module.exports = express.createServer(
    express.bodyParser() 
    , express.static(__dirname + "/public") 
); 
関連する問題