Cysylltu cleient ws Node trwy asiant HTTP dirprwy
Pasiwch HttpsProxyAgent i adeiladwr ws Node fel bod ysgydwad llaw WebSocket yn mynd trwy'r dirprwy ymlaen.
Mae pecyn ws Node yn derbyn asiant HTTP yn ei opsiynau cysylltu. Ar gyfer dirprwy ymlaen, gall darn o fodiwl ES ddefnyddio 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);
});
Mae hyn yn tybio bod y ddau becyn eisoes yn rhan o'r rhaglen. Mae URL y WebSocket yn dewis y gwasanaeth, ac mae URL yr asiant yn dewis y dirprwy. Gall cyfeiriad HTTP o'r rhestr dirprwyon HTTP lenwi URL yr asiant ar gyfer prawf WSS cyhoeddus a ganiateir heb fanylion dirprwy; gwiriwch fynediad i bwynt terfyn go iawn y gwasanaeth.
Mae HttpsProxyAgent yn sefydlu twnnel HTTP CONNECT ac yn rhoi'r trafnidiaeth gysylltiedig i'r cleient. Mae'n cefnogi cysylltiadau WebSocket yn ogystal â cheisiadau HTTPS, felly nid oes rhaid i'r rhaglen adeiladu'r cyfnewid CONNECT ei hun.
Parhewch â thrin arferol open, message a close y rhaglen. Mae'r digwyddiad open yn nodi bod ysgydwad llaw WebSocket wedi'i gwblhau ar y llwybr a ddewiswyd; nid yw creu'r gwrthrych JavaScript ar ei ben ei hun wedi'i gwblhau.