2016-09-01 6 views
0

これまでのソケットは期待通りに動作しています。私のサーバー上で私が持っている:クライアント側で次にソケット接続がすべてのクライアント/接続を認識しない

const io = require('socket.io')(1923); 

// after an action 
io.sockets.emit('items', data); 

const socket = io.connect('http://localhost:1923'); 
socket.on('items', (items) => { 
    // do stuff with items 
}); 

を私は自分のマシン上でだとき、今これがうまく働いています。異なるデバイスがサイトを開くとすぐに、コンピュータ上のブラウザでのみ更新されます。

コンピュータ

  • Firefoxがあまりにも

モバイル

  • サイトはモバイル
  • ためにChromeで開いているサイトオープン
  • Chromeを持っています

アクションが行われた後、コンピュータ上のサイトのみが更新され、新しいデバイスは更新されません。接続を確認すると、clientsCount: 2も認識されます。 (3の代わりに)

このサイトは、3つの別個のブラウザで開いています。これが起こるにはどうしたらいいですか?

(追記:私は2番目のコンピュータと同じ試みた、それは、モバイルデバイスに固有ではありません。)

+1

このクライアントコード 'constのソケット= io.connect( 'のhttp:// localhostを:1923');'と同じコンピュータ上以外の場所に動作しません。サーバーはオンです。 'localhostは定義上、'ローカルのコンピュータであり、ローカルのコンピュータだけです。 IPアドレスまたはDNS名で接続する必要があります。 – jfriend00

+0

私の電話や他のPCに接続すると、私は同じWIFIにいて、 '192.168.0.10:8080'でページにアクセスしています。だから私はそれが問題でなければならないとは思わない – MMachinegun

+1

あなたの質問のコードが示すものではなく、同じポートでもありません。クライアントコードがどのようになっているかを知るにはどうすればよいですか?明らかに接続の問題があります。クライアントをデバッグして、実際に接続していると思っているかどうか、またはエラーが何であれログに記録する必要があります。 'socket.on( 'error'、function(err){console.log(err)});' – jfriend00

答えて

0

あなたの問題を解決しているように見えたので、答えに私のコメントを作ります...

このクライアントコードは:

const socket = io.connect('http://localhost:1923'); 

は、サーバーがオンになっているのと同じコンピュータ上以外の場所は動作しません。ローカルホストは、定義により、ローカルコンピュータであり、ローカルコンピュータのみである。 IPアドレスまたはDNS名で接続する必要があります。

はおそらく、あなたはこれをしたい:

const socket = io.connect('http://192.168.0.10:1923'); 
+0

いいね!ご協力いただきありがとうございます – MMachinegun

関連する問題