2016-05-10 8 views
0

初めてsocket.ioを使用しようとしていますが、MEANスタックで使用しています。私は次のように設定しました。Socket.ioの使用に関する問題

Server.js

var express = require('express'); 
var app  = express();        // create our app w/ express 
var server = require('http').createServer(app); 
var io = require('socket.io')(server); 

app.listen(port); 

io.on('connection', function(socket) { 

    socket.emit('message', { 
     'message': 'hello world' 
    }); 
}); 

HTMLファイルは

<script> 
var socket = io.connect(); 

socket.on('message', function(data) { 
    console.log(data.message); 
}); 
</script> 

私はので、私はスクリプトのCDN検索socket.io.jsファイルを見つけることができませんでした。私は以下を使用しました。

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.6/socket.io.js"></script> 

私は自分のウェブサイトからsocket.io.jsをダウンロードしようとしましたが、ウェブサイトがダウンしているようです。私は私が502 BAD GATEWAYエラーを取得し、それをアクセスすることができます私は、コンソールに次のエラーを取得する上で示したように、すべてを設定した後、私のHTMLページをロードする

http://socket.io

enter image description here

すべてのヘルプは大歓迎されます!

UPDATE:

enter image description here

答えて

0

あなたはこのようにそれを取得するときsocket.ioサーバがそのファイルを提供するために、いくつかの魔法を実行します。

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

EDIT:ああ、私は見ます問題:Expressの設定が正しくありません。

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

app.listen(port); 

あなたはhttp.createServerによって作成されたサーバーへsocket.ioを装着しているが、app.listen()であなたが実際に接続されていない1 socket.ioこと、新しいサーバーを作成しています。

あなたはセットアップが少し簡単にすることができます。

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

httpを使用する必要はありません。

+0

答えに感謝します。私は 'io is defined'と一緒にブラウザコンソールに似たエラーを表示しようとしました – Skywalker

+0

あなた自身のスクリプトを使う前にそのファイルを含めていますか? – robertklep

+0

はい、最初にファイルを追加し、その下に自分の 'var socket = io.connect()'スクリプトをタイプします。 – Skywalker

0

今のところ、socket.ioのWebサイトはまだダウンしています。サーバーにファイルがない場合は、/socket.io/を使用すると役立ちません。これは、サーバー上のルートを指し、そのルートがアプリケーションに存在しないように見えるためです。この設定では、サーバーから静的に.jsファイルを提供する必要がありますが、サーバーコードでは表示されません。

CDNを試すときは、ファイルがロードされていることを確認してください。

+1

'socket.io'サーバは'/socket.io/socket.io.js'を扱うルートを自動的に追加します。手動で行う必要はありません。 – robertklep

+0

ありがとう、私はそれを認識していませんでした!話題は少しオフですが、彼らのウェブサイトは異常に長い時間のためにダウンしているようです... – noderman

+0

ええ、私はなぜ、それは今のオフラインでされています。ほぼ誰も気にしないような考えを得る:-( – robertklep

関連する問題