동일한 포트에서 두 개의 소켓 서버 실행

Aman Gupta |

세 개의 서버가 있습니다

  1. 주 서버-모든 HTTP 요청을 수신합니다.
  2. 소켓 서버 1 : X 유형의 소켓 요청 수신
  3. 소켓 서버 2 : Y 유형의 소켓 요청 수신

동일한 IP : 포트 조합을 사용하여 세 서버를 모두 실행하고 싶습니다. 세 서버 모두 호스트 이름이 다릅니다. /etc/hosts를 들어 세 도메인 이름을 모두 동일한 IP로 확인하기 위해 로컬 DNS를 업데이트했습니다 127.0.0.1.

내가 사용하고 VHost호스트의 기준으로 요청을 해결하기 위해 적절한 서버로 요청을 지시. 이에 대한 코드는 다음과 같습니다.

var express = require('express');
var vhost = require('vhost');
var app = express();
var https = require('https');


var mainServer =  <hostname1> ;
var socketServer1 = <hostname2> ;
var socketServer2 = <hostname3>;


var server = https.createServer(<options>, app);

server.listen(<somePort>,function(){
    console.log('VHost running');
});

var mainApp = require('./app.js');
var socketServerApp1 = require('./socketServer1');
var socketServerApp2 = require('./socketServer2');

app.use(vhost(mainServer, mainApp));
app.use(vhost(socketServer1, socketServerApp1(server)));
app.use(vhost(socketServer2, socketServerApp2(server)));

위 코드에서 직면 한 문제는 두 소켓 서버를 모두 실행하려고하면 브라우저에서 다음과 같은 오류가 발생한다는 것입니다.

WebSocket connection to 'wss://socketServer1:8443/socket.io/?EIO=3&transport=websocket&sid=qlSXz3os5eDI8c_EAAAC' failed: Connection closed before receiving a handshake response

그러나 한 번에 하나의 소켓 서버 만 실행되는 경우 해당 소켓 서버에 대해 문제가 해결됩니다. 즉, app.use 중 하나에 다음과 같이 주석을 추가하면 다음과 같습니다.

app.use(vhost(mainServer, mainApp));
app.use(vhost(socketServer1, socketServerApp1(server)));
//  app.use(vhost(socketServer1, socketServerApp2(server)));

동일한 IP : 포트 조합에서 두 개의 소켓 서버를 실행할 수 없습니까?

Aman Gupta |

문제는 두 소켓 서버에 별도의 목록 작성기가있어서 오류를 일으켰다는 것입니다. 소켓리스트 너를 가상 호스트 앱으로 옮기면 문제가 해결됩니다. 다음은 코드입니다.

var express = require('express');
var vhost = require('vhost');
var app = express();
var https = require('https');
var socketio = require('socket.io');


var mainServer =  <hostname1> ;
var socketServer1 = <hostname2> ;
var socketServer2 = <hostname3>;


var server = https.createServer(<options>, app);
var io = socketio.listen(server);

server.listen(<somePort>,function(){
    console.log('VHost running');
});

var mainApp = require('./app.js');
var socketServerApp1 = require('./socketServer1');
var socketServerApp2 = require('./socketServer2');

app.use(vhost(mainServer, mainApp));
app.use(vhost(socketServer1, socketServerApp1(io)));
app.use(vhost(socketServer2, socketServerApp2(io)));

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

iis에서 두 개의 다른 SSL 포트로 동일한 사이트 실행

분류에서Dev

동일한 네트워크에서 두 개의 DHCP 서버 실행

분류에서Dev

동일한 포트에서 소켓과 웹 소켓 서버를 실행하는 방법은 무엇입니까?

분류에서Dev

동일한 컴퓨터에서 두 개의 카산드라 버전 실행

분류에서Dev

동일한 포트에서 수신하는 두 개의 로컬 주소?

분류에서Dev

일대일 게임을위한 서버로 두 개의 클라이언트 소켓 허용 튜토리얼 실수?

분류에서Dev

tensorflow에서 두 개의 텐서에 대해 동일한 RNN 실행

분류에서Dev

동일한 '메인'에서 두 개의 워프 서버를 실행하는 것이 안전합니까?

분류에서Dev

동일한 페이지에서 두 개의 쿼리 실행 및 가져 오기

분류에서Dev

Windows에서 jar 파일의 단일 인스턴스 만 실행하도록 소켓 포트 차단

분류에서Dev

동일한 호스트에서 두 개의 방랑 인스턴스를 실행할 때 ssh 포트 전달이 실패합니까?

분류에서Dev

Django Rest 프레임 워크에서 동일한 리소스에 대한 두 개의 엔드 포인트

분류에서Dev

두 개의 GPU에서 GPU 및 CPU 작업을 포함하는 동일한 수의 루프 주기로 두 개의 for 루프를 동시에 실행

분류에서Dev

citrus와 동일한 포트에서 다른 URL로 두 개의 모의 웹 서비스를 실행하는 방법은 무엇입니까?

분류에서Dev

애플리케이션이 동일한 포트에서 실행되는 두 대의 컴퓨터

분류에서Dev

동일한 포트에서 두 개의 다른 gearman 클라이언트 / 작업자를 실행할 수 있습니까?

분류에서Dev

두 서버의 쿠키를 얻는 방법 1. 애플리케이션 (HTTP) 실행, 2. 웹 소켓 (WS) 서버 실행?

분류에서Dev

Boost.Asio, 동일한 소켓에 의한 두 판독

분류에서Dev

두 개의 실행 바이너리 파일이 동일한 소스 코드에서 생성되었는지 확인하는 방법은 무엇입니까?

분류에서Dev

동일한 애플리케이션에서 두 개의 Tomcat 서버를 실행하면 MBean 등록에 실패합니다.

분류에서Dev

동일한 컴퓨터에서 동시에 두 개의 Windows 세션을 실행할 수 있습니까?

분류에서Dev

동일한 컴퓨터에서 동시에 두 개의 Windows 세션을 실행할 수 있습니까?

분류에서Dev

R에서 행렬의 두 열 사이에있는 동일한 요소의 최대 개수

분류에서Dev

서버가 c에서 두 개의 TCP 소켓을 열 수 있습니까?

분류에서Dev

동일한 파일에서 두 개의 grep 명령을 실행하는 방법은 무엇입니까?

분류에서Dev

Irssi, 두 서버의 동일한 회의실

분류에서Dev

다른 동적 DJANGO_SETTINGS_MODULE 환경 변수를 사용하여 동일한 서버에서 두 개의 django 앱을 실행하는 방법

분류에서Dev

CloudFoundry의 동일한 데이터베이스에서 두 개의 애플리케이션 실행

분류에서Dev

소켓이 서버에서 두 메시지를 모두받지 못함 (거의 동시에)

Related 관련 기사

  1. 1

    iis에서 두 개의 다른 SSL 포트로 동일한 사이트 실행

  2. 2

    동일한 네트워크에서 두 개의 DHCP 서버 실행

  3. 3

    동일한 포트에서 소켓과 웹 소켓 서버를 실행하는 방법은 무엇입니까?

  4. 4

    동일한 컴퓨터에서 두 개의 카산드라 버전 실행

  5. 5

    동일한 포트에서 수신하는 두 개의 로컬 주소?

  6. 6

    일대일 게임을위한 서버로 두 개의 클라이언트 소켓 허용 튜토리얼 실수?

  7. 7

    tensorflow에서 두 개의 텐서에 대해 동일한 RNN 실행

  8. 8

    동일한 '메인'에서 두 개의 워프 서버를 실행하는 것이 안전합니까?

  9. 9

    동일한 페이지에서 두 개의 쿼리 실행 및 가져 오기

  10. 10

    Windows에서 jar 파일의 단일 인스턴스 만 실행하도록 소켓 포트 차단

  11. 11

    동일한 호스트에서 두 개의 방랑 인스턴스를 실행할 때 ssh 포트 전달이 실패합니까?

  12. 12

    Django Rest 프레임 워크에서 동일한 리소스에 대한 두 개의 엔드 포인트

  13. 13

    두 개의 GPU에서 GPU 및 CPU 작업을 포함하는 동일한 수의 루프 주기로 두 개의 for 루프를 동시에 실행

  14. 14

    citrus와 동일한 포트에서 다른 URL로 두 개의 모의 웹 서비스를 실행하는 방법은 무엇입니까?

  15. 15

    애플리케이션이 동일한 포트에서 실행되는 두 대의 컴퓨터

  16. 16

    동일한 포트에서 두 개의 다른 gearman 클라이언트 / 작업자를 실행할 수 있습니까?

  17. 17

    두 서버의 쿠키를 얻는 방법 1. 애플리케이션 (HTTP) 실행, 2. 웹 소켓 (WS) 서버 실행?

  18. 18

    Boost.Asio, 동일한 소켓에 의한 두 판독

  19. 19

    두 개의 실행 바이너리 파일이 동일한 소스 코드에서 생성되었는지 확인하는 방법은 무엇입니까?

  20. 20

    동일한 애플리케이션에서 두 개의 Tomcat 서버를 실행하면 MBean 등록에 실패합니다.

  21. 21

    동일한 컴퓨터에서 동시에 두 개의 Windows 세션을 실행할 수 있습니까?

  22. 22

    동일한 컴퓨터에서 동시에 두 개의 Windows 세션을 실행할 수 있습니까?

  23. 23

    R에서 행렬의 두 열 사이에있는 동일한 요소의 최대 개수

  24. 24

    서버가 c에서 두 개의 TCP 소켓을 열 수 있습니까?

  25. 25

    동일한 파일에서 두 개의 grep 명령을 실행하는 방법은 무엇입니까?

  26. 26

    Irssi, 두 서버의 동일한 회의실

  27. 27

    다른 동적 DJANGO_SETTINGS_MODULE 환경 변수를 사용하여 동일한 서버에서 두 개의 django 앱을 실행하는 방법

  28. 28

    CloudFoundry의 동일한 데이터베이스에서 두 개의 애플리케이션 실행

  29. 29

    소켓이 서버에서 두 메시지를 모두받지 못함 (거의 동시에)

뜨겁다태그

보관