Guide discord.js
Informations supplémentaires

Utiliser un proxy

Ce guide vous montrera comment configurer un proxy avec discord.js. Cela peut être nécessaire si vous déployez votre bot sur un serveur avec un pare-feu qui autorise uniquement le trafic externe via le proxy.

Proxier discord.js nécessite deux composants : un proxy REST et un proxy WebSocket.

Préalables

Pour obtenir ces deux composants, vous pouvez utiliser les paquets undici et global-agent :

npm install undici global-agent

Configuration du proxy pour les appels REST

Le paquet @discordjs/rest qui gère les requêtes HTTP dans discord.js utilise le paquet undici. En conséquence, vous pouvez fournir une configuration ProxyAgent personnalisée au constructeur du client :

index.js
const { ProxyAgent } = require('undici'); 
const { Client } = require('discord.js');

const client = new Client({
	// ...other client options
	rest: {
		agent: new ProxyAgent('http://my-proxy-server:port'),
	},
});

client.login('your-token-goes-here');

Pour plus d'informations sur le ProxyAgent d'undici, veuillez vous référer à la documentation undici.

Configuration du proxy pour la connexion WebSocket

Pour configurer un proxy pour WebSocket, vous pouvez utiliser le paquet global-agent. Vous devrez importer et appeler la fonction bootstrap() et définir les globals GLOBAL_AGENT requis comme illustré ci-dessous :

index.js
const { ProxyAgent } = require('undici');
const { Client } = require('discord.js');
const { bootstrap } = require('global-agent'); 

bootstrap(); 
global.GLOBAL_AGENT.HTTP_PROXY = 'http://my-proxy-server:port';
global.GLOBAL_AGENT.HTTPS_PROXY = 'https://my-proxy-server:port';

const client = new Client({
	// ...other client options
	rest: {
		agent: new ProxyAgent('http://my-proxy-server:port'),
	},
});

client.login('your-token-goes-here');