2016-03-21 6 views
0
私は私のクライアントは私のサーバーに接続して取得しようとしているが、クロムは常に

Express 4でsocket.ioが見つかりませんか?問題だどこ

http://localhost:30653/socket.io/socket.io.js 404(見つかりません)

をGETすることを印刷する

私は知りません...

Expressバージョンは、 "4.13.4" とsocket.ioバージョンである "1.4.5"

そしてここでは私のコードです:

app.js

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

io.on('connection',function(socket){ 
    console.log("connected"); 
    socket.emit('open'); 
}); 

app.set('port', process.env.PORT || 30653); 
app.set('view engine','html'); 
app.engine('html',hbs.__express); 
app.use(express.static('public')); 
app.get('/',function(req,res){ 
    res.render('chatroom'); 
}); 
app.listen(app.get('port'),function(){ 
    console.log('this server is listening on port:'+app.get('port')); 
}); 

クライアント:!

$(function(){ 
    var socket = io.connect('http://localhost:30653'); 
    socket.on('open',function(){ 
     console.log("open") 
    }); 
    socket.on('system',function(json){ 
     console.log("system"); 
    }); 
}); 

任意のヘルプは大歓迎です私はそれを非常に感謝されます!

答えて

2

あなたのapp.listen(...)は、ここに示すようにサーバーを作成する方法のためにserver.listen(...)にする必要があります:http://socket.io/docs/#using-with-express-3/4です。あなたがやっているやり方では、socket.ioは正しいサーバーに接続されていないので、socket.io.jsファイルをあなたのために提供していません。 「公共http://socket.io/docs/#using-with-the-express-framework

+0

グレート以下のようにあなたのクライアントにインポート!私はapp.listen()をserver.listen()に置き換えたので、クライアントfind socket.io/socket.io.js。私はそれを作る。どうもありがとうございました! – Evercx

0

あなたはラインapp.use(express.static(後app.jsにコードの次の行を使用する必要があります。

あなたはapp.listen()を行うことができますが、ここでは異なる初期設定手順に従った場合にのみ、 ')));

app.use("/lib", express.static(path.join(__dirname,'node_modules'))); 

、その後

<script src='/lib/socket.io/socket.io.js' type='text/javascript'></script> 
+0

socket.ioは '/ socket.io/socket.io.js'のルートを自動的にインストールしますので、これは必要ありません。 – jfriend00

関連する問題