Proxies

MTProxy

Both TLS and non-TLS versions of MTProxy are supported by MTKruto. To connect a client to an MTProxy server, use transportProviderMtproxy when initializing it:

import { Client, transportProviderMtproxy } from "@mtkruto/mtkruto";

const proxyLink = "https://t.me/proxy?server=hostname&port=443&secret=00000000000000000000000000000000";

const client = new Client({
  transportProvider: transportProviderMtproxy(proxyLink),
  /* ... */
});

Credentials can also be specified manually:

const hostname = "hostname";
const port = 443;
const secret = new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);

const transportProvider = transportProviderMtproxy(hostname, port, secret);

SOCKS5

SOCKS5 proxies are also supported through transportProviderSocks5:

import { Client, transportProviderSocks5 } from "@mtkruto/mtkruto";

const proxyLink = "socks5://user:pass@host:port";

const client = new Client({
  transportProvider: transportProviderSocks5(proxyLink),
  /* ... */
});