2017-02-03 15 views
0

nginxリバースプロキシで実行されているnodejs socket.ioアプリケーションがあります。次のようにSocket.ioイベントが受信されませんでした(nginxリバースプロキシ、サーバーからクライアントへ)

私のnginxの構成は次のとおりです。

location ~ ^/(online|socket\.io) { 
     proxy_pass http://localhost:8888; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 

これが動作しているようですし、私のnodejsアプリが接続罰金をピックアップ。サーバー側のsocket.ioに私は次のようしている:

io.of('/online').on('connection', function(socket){ 

これは正常に動作するようですし、「接続」イベントが

を発射されて、私は、サーバーからのイベントを放出しようとすると問題が発生します

socket.join("users"); 
io.sockets.in("users").emit("got_users",users); 

'got_users'イベントがクライアントによって取得されていません。そして、これが正常に動作するようです

a4e.socket=io.connect('http://www.example.com/online'); 

、しかし:クライアント側では、私は次のことを持っている

a4e.socket.on("got_users",function(online_users){ 

これは関係なく、私がしようとするもの、「got_users」イベントをピックアップしません。

大変助かりました。

答えて

1

私は最終的に、次の行を、これを考え出した:

io.sockets.in("users").emit("got_users",users); 

を置き換えてください:

io.of("/online").in("users").emit("got_users",users); 

が、それは動作します。

+1

ありがとう@praine。私は迷子になってしまった。 –

関連する問題