HTTP 프록시 에이전트를 통해 Node의 ws 클라이언트 연결하기
HttpsProxyAgent를 Node ws 생성자에 넘겨 WebSocket 핸드셰이크가 포워드 프록시를 거치게 한다.
Node의 ws 패키지는 연결 옵션에서 HTTP 에이전트를 받습니다. 포워드 프록시에는 ES 모듈 조각이 HttpsProxyAgent를 사용할 수 있습니다.
import WebSocket from 'ws';
import { HttpsProxyAgent } from 'https-proxy-agent';
const agent = new HttpsProxyAgent('http://proxy.example.net:8080');
const socket = new WebSocket('wss://socket.example.net/events', {
agent,
});
socket.on('error', error => {
console.error(error.message);
});
이는 두 패키지가 이미 애플리케이션의 일부라고 가정합니다. WebSocket URL은 서비스를 고르고, 에이전트 URL은 프록시를 고릅니다. HTTP 프록시 목록의 HTTP 주소는 프록시 자격 증명 없이 허용된 공개 WSS 테스트에 쓸 에이전트 URL을 채울 수 있습니다. 실제 서비스 엔드포인트 접근을 확인하세요.
HttpsProxyAgent는 HTTP CONNECT 터널을 열고 연결된 전송을 클라이언트에 넘깁니다. WebSocket 연결과 HTTPS 요청을 모두 지원하므로 애플리케이션이 CONNECT 교환을 직접 만들 필요가 없습니다.
애플리케이션의 평소 open, message, close 처리를 이어 가세요. open 이벤트는 선택한 경로에서 WebSocket 핸드셰이크가 완료되었음을 뜻합니다. JavaScript 객체를 만드는 것만으로는 완료되지 않습니다.