TCP Transport

The default transport for all runtimes is WebSocket. Although, you can make clients running in Node.js and Deno use raw TCP.

Node.js

For Node.js, you first have to install @mtkruto/transport-provider-tcp.

pnpm add @mtkruto/transport-provider-tcp

After that, you can use transportProviderTcp().

const { Client } = require("@mtkruto/node");
const { transportProviderTcp } = require("@mtkruto/transport-provider-tcp");

const client = new Client({
  storage,
  apiId,
  apiHash,
  transportProvider: transportProviderTcp(),
  /* other params */
});

Deno

Projects using Deno can directly import transportProviderTcp() from deno.land/x.

import { Client } from "https://deno.land/x/mtkruto@0.1.800/mod.ts";
import { transportProviderTcp } from "https://deno.land/x/mtkruto@0.1.800/transport/3_transport_provider_tcp.ts";

const client = new Client({
  storage,
  apiId,
  apiHash,
  transportProvider: transportProviderTcp(),
  /* ... */
});

Parameters

IPv6

To connect via IPv6, set ipv6 to true.

transportProvider({
  ipv6: true,
  /* other params */
});

Obfuscation

To enable transport obfuscation, set obfuscated to true.

transportProvider({
  obfuscated: true,
  /* other params */
});

The above parameters are available to both runtimes.

SOCKS5 Proxy

You can connect to Telegram through a SOCKS5 proxy like this:

transportProvider({
  proxy: {
    type: "socks5",
    hostname: "proxyhostname", /* required */
    port: 8000, /* optional */
    username: "username", /* optional */
    password: "password", /* optional */
  },
  /* other params */
})

SOCKS5 proxy is available only to Deno as of now.