You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js机器人/应用运行端口及修改方法咨询

Discord.js 应用端口问题解答

核心结论

discord.js 本身没有默认运行端口——它基于 WebSocket 与 Discord API 建立长连接,基础机器人功能(消息监听、指令响应等)不需要监听 HTTP 端口就能运行。你之前用 Express 是因为需要搭建 HTTP 服务处理 OAuth2 授权、斜杠命令交互回调这类需要接收 HTTP 请求的场景,纯 discord.js 机器人无需这一步。

若需监听端口(处理交互/自定义HTTP服务)

如果你的机器人需要处理 Discord 交互请求(如斜杠命令、按钮点击),或需要自定义 HTTP 服务,可在 discord.js 项目中集成 Express(或其他 HTTP 框架)手动指定端口:

示例代码(集成Express指定端口)

const { Client, GatewayIntentBits } = require('discord.js');
const express = require('express');

// 初始化Discord客户端
const client = new Client({ 
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ]
});

// 初始化Express服务
const app = express();
const PORT = 3000; // 自定义端口,可替换为任意未被占用的端口

// 配置路由处理Discord交互请求
app.use(express.json());
app.post('/discord-interactions', (req, res) => {
  // 此处编写交互逻辑(如斜杠命令响应)
  res.sendStatus(200);
});

// 启动HTTP服务
app.listen(PORT, () => {
  console.log(`HTTP服务已启动,监听端口 ${PORT}`);
});

// 登录Discord机器人
client.login('你的机器人令牌');

端口转发说明

和之前用 Express 的流程一致:启动上述 HTTP 服务后,用 ngrok 转发你指定的端口(比如 ngrok http 3000),再将 ngrok 生成的公网 URL 配置到 Discord 开发者后台的交互端点中即可。

内容的提问来源于stack exchange,提问作者DaveExotic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:15:43