2016-08-06 6 views
0

以下のコードは私の現在の設定ですが、うまくいきましたが混乱します。socket.io設定のエクスプレスジェネレータ

サーバ側

var server = require("http").Server(express); 
var io = require("socket.io")(server); 
server.listen(5000); 
io.on('connection', function(client) { 


}); 

cilent

var socket = io.connect('http://localhost:5000'); 

我々はアプリケーションのポート5000でソケットの別のサーバーを作成する必要があるのはなぜ?ソケットは3000を使用できませんか?エクスプレスのランニングポートです。 server.listen( '5000')の行を削除してserver.listen()を実行し、クライアント側でポート3000に接続しようとすると動作しません。

+0

あなたが表示しているコード(ポート5000上)で行っているのと同じように、Webサーバーに同じポートをsocket.ioと同じように使用できます。コードがうまくいかない場合は、そのコードを表示する必要があります。 'server.listen(5000);'はあなたの高速サーバーを起動しています。あなたはそこに港を置く必要があります。 'var io = require(" socket.io ")(server);'あなたのWebサーバーにsocket.ioをバインドしています。 'var server = require(" http ")。サーバ(express); 'は、Webサーバーを作成し、それに明示的な要求ハンドラーをバインドしています。 – jfriend00

+0

@ jfriend00新速達版bin/wwwにサーバーを作成すると、サーバーの行を削除して今すぐ動作します。 –

+2

私たちがあなたの質問に実際に答えるのを助けたり、後に来る人を助けてくれるものを私たちに提示していないので、今考えたことがあるように見えます。 – jfriend00

答えて

0

デフォルトでは、express 4はサーバーを作成し、bin/wwwを実行します。私はこのファイルにserver.listen(port);をコメントアウトすることでこの問題を解決しました。

関連する問題