Σύνδεση του πελάτη ws του Node μέσω πράκτορα HTTP proxy
Περάστε το HttpsProxyAgent στον κατασκευαστή ws του Node ώστε η χειραψία WebSocket να περνά από τον μπροστινό proxy.
Το πακέτο ws του Node δέχεται έναν πράκτορα HTTP στις επιλογές σύνδεσής του. Για μπροστινό proxy, ένα τμήμα μονάδας 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);
});
Αυτό προϋποθέτει ότι και τα δύο πακέτα είναι ήδη μέρος της εφαρμογής. Το URL του WebSocket επιλέγει την υπηρεσία· το URL του πράκτορα επιλέγει το proxy. Μια διεύθυνση HTTP από τη λίστα HTTP proxy μπορεί να συμπληρώσει το URL του πράκτορα για επιτρεπόμενη δημόσια δοκιμή WSS χωρίς διαπιστευτήρια proxy· ελέγξτε την πρόσβαση στο πραγματικό σημείο τέλους της υπηρεσίας.
Το HttpsProxyAgent δημιουργεί σήραγγα HTTP CONNECT και παραδίδει τη συνδεδεμένη μεταφορά στον πελάτη. Υποστηρίζει συνδέσεις WebSocket καθώς και αιτήματα HTTPS, οπότε η εφαρμογή δεν χρειάζεται να κατασκευάσει μόνη της την ανταλλαγή CONNECT.
Συνεχίστε με τη συνήθη διαχείριση open, message και close της εφαρμογής. Το συμβάν open σηματοδοτεί την ολοκλήρωση της χειραψίας WebSocket στη διαδρομή που επιλέχθηκε· η απλή δημιουργία του αντικειμένου JavaScript δεν την ολοκλήρωσε.