2016-10-18 9 views
0

現在、私はAzureアプリケーションサービスにノードアプリケーションをデプロイしました。私の現在のアプリサービスプランには2つのコアプロセッサがあります。そして私はnodeProcessCountPerApplication:2をiisnode.ymlファイルに設定しました。今私はリアルタイムUIの更新のためのsocket.io機能を実装しています。単一のプロセスでうまく動作します。 nodeProcessCountPerApplicationを使用すると、2つの問題が発生します。私は、この使用してsocket.io-のRedisを解決しようとした、次のエラー -azure Webサービスでsocket.io-redisを使用する

{"code":1,"message":"Session ID unknown"}

を取得しています。ここでredis-

var io = require('socket.io')(server); 
 
var redis = require('socket.io-redis'); 
 
io.adapter(redis({ host: 'localhost', port: 6379 }));

を使用してしかし、私は何をしないのですchanges-

Error: Redis connection to localhost:6379 failed - connect EACCES 127.0.0.1:6379 
 
    at Object.exports._errnoException (util.js:1008:11) 
 
    at exports._exceptionWithHostPort (util.js:1031:20) 
 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)

後、次のエラーを取得するためのコードです。あなたの時間を感謝します。

答えて

0

私の経験上、この問題は、クライアントがXHRポーリング転送を使用しており、サーバーがクラスタモードになっている場合に発生します。 私は最良の解決策はWebSocketを使用することだと思います。それを実現するには、以下の手順に従うことができる:Azureのポータル
を使ってWebSocketをを有効に

  1. をWeb AppsのブレードからWebアプリケーションをクリックして、すべての設定]> [アプリケーションの設定]をクリックします。 [Webソケット]で[オン]をクリックします。次に[保存]をクリックします。
    enter image description here
  2. のみ
    は、このコードにクライアント側
    var socket = io();

    に次のコードを置き換えのWebSocketを使用するSocket.IOを教える:
    var socket = io({transports: ['websocket']});

がそれを願っています助けてください。それ以上の心配があれば、私に知らせてください。

関連する問題