Połączenie klienta ws Node przez agenta HTTP proxy
Przekaż HttpsProxyAgent do konstruktora ws w Node, aby uścisk dłoni WebSocket przechodził przez proxy forward.
Pakiet ws w Node przyjmuje agenta HTTP w swoich opcjach połączenia. Dla proxy forward fragment modułu ES może użyć 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);
});
Zakłada to, że oba pakiety są już częścią aplikacji. URL WebSocket wybiera usługę, a URL agenta wybiera proxy. Adres HTTP z listy proxy HTTP może wypełnić URL agenta na potrzeby dozwolonego publicznego testu WSS bez danych uwierzytelniających proxy; sprawdź dostęp do rzeczywistego punktu końcowego usługi.
HttpsProxyAgent tworzy tunel HTTP CONNECT i przekazuje połączony transport klientowi. Obsługuje połączenia WebSocket oraz żądania HTTPS, więc aplikacja nie musi sama budować wymiany CONNECT.
Kontynuuj zwykłą obsługę open, message i close w aplikacji. Zdarzenie open oznacza zakończenie uścisku dłoni WebSocket na wybranej trasie; samo utworzenie obiektu JavaScript go nie zakończyło.