web-dev-qa-db-ja.com

socket.io.jsが見つかりません

何らかの理由で、ノードサーバーがルート/socket.io/socket.io.js、私は常に404エラーを受け取ります。
異なるノードバージョンをコンパイルしてみました(現在はサーバー上で実行され、実際に動作している0.6.1)。
app.jsからinfo: socket.io startedおよびsocket.io.jsを呼び出そうとしてもエラーなし。

ローカルホストとポート8000​​から試してみて、エクスプレスフレームワークを使用します

これはapp.jsのコードです。

var express = require('express')
  , app = require('express').createServer()
  , io = require('socket.io').listen(app, { log: true });

app.listen(8000);

app.configure(function() {
    app.use(express.static(__dirname + '/public'));
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

io.sockets.on('connection', function (socket) {
   // all other stuff here
43
Dan Lee

Expressバージョンを確認してください。 Expressは最近APIが変更された3.0alphaに更新されました。 3.0の場合、コードを次のようなものに変更できます。

var express = require('express')
  , http = require('http');

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

...

server.listen(8000);

接続に関する同じ問題: https://github.com/senchalabs/connect/issues/500#issuecomment-462077

95
nguyenkha

Express 3 Webフレームワークでの使用:( from socket.io

> Express 3では、http.Serverをインスタンス化してsocket.ioを最初にアタッチする必要があります:

意味-(1)サーバーインスタンスを作成する必要があります。

var app = express();
var http = require('http').createServer(app);

(2)socket.ioと組み合わせます:

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

のみ-(3)サーバーをリッスンさせる:

http.listen(8080);

この順序を守ってください!

3
Aviram Net

ノード0.8.1をインストールした後、同じ問題が発生しました。プロジェクトフォルダーのnode_modulesマップを削除し、express/socket.ioを再インストールしました。その後、質問のコードで再び問題なく動作しました。

1
r03

Socket.ioをリポジトリ内にインストールします:

npm install socket.io --save 

その後、サーバーを設定します:

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

   server.listen(app.get('80')); // not 'app.listen'

そしてアーカイブ内HTML/EJSまたは他の必要なものを追加:

<script src="/socket.io/socket.io.js"></script>

Console(Chrome/Mozillaなど)で動作するかどうかを確認します。

私の例では、Chrome(Ctrl + shift + I):

enter image description here

0

たぶんこれはあなたを助けるかもしれません、私のUbuntu 11.10で私は正しく設定していませんNODE_PATH変数、linux/macを使用している場合は、.bashrc/.zshrcファイルに以下の行を追加してください。

export NODE_PATH=/usr/lib/node_modules:$NODE_PATH
0
Jacek Wysocki