2016-10-18 5 views
0

현재 하늘빛 응용 서비스에 노드 응용 프로그램을 배포했습니다. 내 현재의 앱 서비스 계획에는 2 개의 핵심 프로세서가 있습니다. 그리고 nodeProcessCountPerApplication : 2를 iisnode.yml 파일에 설정했습니다. 이제 UI에 대한 실시간 업데이트를 위해 socket.io 기능을 구현했습니다. 단일 프로세스로 잘 작동합니다. nodeProcessCountPerApplication을 사용할 때 : 2 개의 문제가 시작됩니다. 나는이 사용 socket.io - 레디 스를 해결하기 위해 노력 하늘색 웹 서비스에 socket.io-redis 사용하기

{"code":1,"message":"Session ID unknown"}
다음과 같은 오류 -

을 얻고있다. 여기

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)
내가 놓친 게 무엇

변경 사항 -

후 다음과 같은 오류를 redis-

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

를 사용하지만 점점 코드입니다. 시간을 내 주셔서 감사합니다.

답변

0

내 경험에 의하면 클라이언트가 XHR 폴링 전송을 사용 중이고 서버가 클러스터 모드에있는 경우이 문제가 발생합니다. 그래서 최고의 솔루션은 WebSocket 만 사용하는 것입니다. 그것을 달성하기 위해, 당신은 아래의 단계를 수행 할 수 :

  1. 이 웹 블레이드를 앱에서 웹 응용 프로그램을 클릭 푸른 포털
    을 WebSocket을 사용하여 사용 가능 모든 설정> 응용 프로그램 설정을 클릭합니다. Web Sockets에서 On을 클릭하십시오. 그런 다음 저장을 클릭하십시오.
    enter image description here

  2. 이 코드에 대한 클라이언트 엔드
    var socket = io();

    에 다음 코드를 교체 웹 소켓을 사용하는 Socket.IO 알려주기 :
    var socket = io({transports: ['websocket']});

그것을 희망 도움이됩니다. 더 이상의 우려 사항이 있으면 알려 주시기 바랍니다.

관련 문제