import { io } from 'socket.io-client';
import { SocksProxyAgent } from 'socks-proxy-agent';

const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const socket = io('https://events.example', {
  agent,
  transports: ['polling', 'websocket'],
});

Dùng đúng dịch vụ Socket.IO. Agent Node thương lượng SOCKS; socks5h chuyển DNS đích cho proxy đó. Lấy một điểm cuối phù hợp từ danh sách proxy SOCKS5 khi việc thử dịch vụ công khai qua trung gian công khai được cho phép.

Polling có thể thành công trước khi một lần nâng cấp WebSocket sau đó thất bại. Hãy kiểm tra cả hai đường và mọi transportOptions ghi đè agent ở cấp cao nhất.

Ví dụ cố ý dùng hai transport này. WebTransport dùng một cách triển khai khác, và JavaScript đóng gói cùng trình duyệt tuân theo cấu hình của trình duyệt. Một điểm cuối WebSocket thông thường cũng không phải máy chủ Socket.IO.

Giữ nguyên logic sự kiện và kết nối lại hiện có, sau đó ngắt kết nối client và giải phóng agent của nó khi các kết nối kết thúc.

Bài viết liên quan