【问题标题】:Memory leaking Discord.js on messageCreatemessageCreate 上的内存泄漏 Discord.js
【发布时间】:2022-10-09 10:34:46
【问题描述】:

此代码监控 Discord 频道,寻找消息内容中提及的“示例”(链接)。这部分是使用 Discord 用户帐户使用“discord.js-selfbot-v13”制作的。 然后 Discord bot (discord.js) 将消息重新发送到一个频道,如果今天没有发送到另一个频道。

它适用于一个 Discord 用户帐户监控通道。随着不止一个似乎发生内存泄漏,内存使用量急剧增加。当您使用一个客户端运行 Pm2 监视器时,它显示使用了大约 70-100mb 的内存。两个客户端的内存使用量在 2 小时内增加了 300MB 以上。

我错过了什么消耗内存而不被 GC 收集的东西?

//channels to exclude
const DS_CHANS = require('./ds-channels.json');
const DS_USERS = require('./ds-users.json');
const DS_BOT = require('./ds-bot.json');
const DS_ALL_CHAN = '123456';
const DS_UNIQUE_CHAN = '12345678';
const todayPosts = [];

const { Client } = require('discord.js-selfbot-v13');
const Discord = require('discord.js');

class Account {
    constructor(token, client) {
        this.client = client;
        this.client.login(token);
        this.client.on('messageCreate', async (message) => {
            if (message.content.includes('example')) {
                if (!Object.values(DS_CHANS).includes(message.channelId)) {
                    await sendToDsAll(message);
                    let subLink = await getSubLink(getLink(message.cleanContent));
                    if (!todayPosts.includes(subLink)) {
                        await sendToDsUnique(getLink(message.cleanContent));
                        todayPosts.push(subLink);
                    }
                }
            }
        });
    }
}

const createClients = () => {
    DS_USERS.forEach(e => {
        new Account(e.dsToken, new Client({ checkUpdate: false, }));
    });
};

const createBot = () => {
    let botClient = new Discord.Client({ intents: 2048 });
    botClient.login(DS_BOT.token);
    return botClient;
}

const botClient = createBot();

async function sendToDsAll(message) {
    let channel = await botClient.channels.fetch(DS_ALL_CHAN);
    channel.send(message.content);
}

async function sendToDsUnique(link) {
    let channel = await botClient.channels.fetch(DS_UNIQUE_CHAN);
    channel.send(link);
}

//return string
function getLink(messageContent)

//return string
function getSubLink(link)

createClients();

【问题讨论】:

  • 您是否意识到在 Discord 上不允许使用自我机器人?
  • 当然,它仅用于教育目的。
  • 不要找借口。 Discord 上不允许使用自我机器人,仅此而已。如果您想违反 Discord 的服务条款,请不要寻求帮助

标签: javascript node.js memory-leaks discord.js


【解决方案1】:

这违反了 Discord 的Terms of Service。 Discord 上不允许使用自我机器人,这是规则。即使是出于实验目的,这也是规则,仅此而已。我拒绝帮助你。

【讨论】:

    猜你喜欢
    • 2012-12-23
    • 2017-02-28
    • 2017-04-14
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多