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'],
});

გამოიყენეთ ნამდვილი Socket.IO სერვისი. Node აგენტი SOCKS-ზე მოლაპარაკებას აწარმოებს; socks5h დანიშნულების DNS-ს ამ პროქსის გადასცემს. აიღეთ შესაბამისი საბოლოო წერტილი SOCKS5 პროქსების სიიდან, როცა საჯარო შუამავლების გავლით საჯარო სერვისების ტესტირება ნებადართულია.

polling შეიძლება წარმატებული იყოს მოგვიანებით WebSocket-ის განახლების წარუმატებლობამდე. შეამოწმეთ ორივე გზა და ნებისმიერი transportOptions, რომელიც ზედა დონის აგენტს გადაფარავს.

მაგალითი განზრახ იყენებს ამ ორ ტრანსპორტს. WebTransport სხვა იმპლემენტაციას იყენებს, ხოლო ბრაუზერში ჩაშენებული JavaScript ბრაუზერის კონფიგურაციას მიჰყვება. ჩვეულებრივი WebSocket საბოლოო წერტილიც არ არის Socket.IO სერვერი.

შეინარჩუნეთ არსებული მოვლენებისა და ხელახალი დაკავშირების ლოგიკა, შემდეგ გათიშეთ კლიენტი და გაათავისუფლეთ მისი აგენტი, როცა კავშირები დასრულდება.

დაკავშირებული სტატიები