2015-10-17 3 views
14

私は現在、サーバといくつかのクライアントの間でリアルタイム情報を共有するために、Socket.IOノードと連携して作業しています。クライアントは、サーバーではなく、互いに通信する必要があります。httpサーバーなしのSocket.IO?

私は情報を共有できますが、情報を共有することはできますが、linuxのvpsに入れると、ipv6ソケットですべてを開始してクライアント側のブラウザに接続するのが難しくなりました

socket.ioからlibary私はこのようなサーバーを起動します。

io = require('socket.io').listen(3000); 

ウィッヒがうまく働いていた、と私は接続することができます。今、私はこの

io = require('socket.io').listen(3000, '0.0.0.0'); 

のようなIPv4のアドレスを使用してIPv6を防ぐためにしようとしたLinuxのVPS上のそれはないLinux上ではなくWindows上で、動作しませんでした。私はこのようなhttpサーバを使用しない限り、彼は私がそれをしたいIPにソケットをバインドしません:

http = require('http').createServer().listen(3000, '0.0.0.0'); 
io = require('socket.io').listen(http); 

今私の質問は、私はソケットをバインドの問題を解決するために、HTTPサーバーを使用する必要があります適切なローカルIPとポートまたはそこに他の解決策はありますか? socketioは、コードの最初の行の場合はバックグラウンドでhttpサーバを起動します。これはWebソケットであるか、httpサーバなしでsocketioが動作しますか?

は:)非常

答えて

20

Socket.ioをありがとう、そして一般的にはWebSocketをは、初期ハンドシェイクのためのhttpサーバが必要です。したがって、Socket.ioにhttpサーバを提供していなくても、それを作成します。

io.listen(3000, '0.0.0.0')の2番目のパラメータがSocket.ioによって無視されるという問題があります。最後のスニペットは、本質的にSocket.ioがバックグラウンドで何をしているのかというより、あなたの方が良いでしょう。唯一の違いは、聞くインターフェイスを制御できることです。

+0

大変ありがとうございます。 – Arkensor

関連する問題