我正在尝试在Nodejs中制作一个简单的乒乓discord机器人,而没有像Nodejs中的discord.js这样的库
我认为将websockets与discord的其余api一起使用是最好的解决方案,但我找不到任何帮助或任何代码示例来实现
我找到了这门课程:https://courses.cs.washington.edu/courses/cse154/17au/exploration/websockets/slides.html#/ 有了这个我无法理解的“解决方案”:https://courses.cs.washington.edu/courses/cse154/17au/exploration/websockets/solution/
这是该课程的摘录:
const BOT_TOKEN = "xxx";
// Discord Gateway url
const GATEWAY_URL = "wss://gateway.discord.gg/?v=6&encoding=json";
// Websocket object
let ws = null;
connect();
// connect to gateway
function connect() {
ws = new WebSocket(GATEWAY_URL); // opens the websocket connection and creates WS object
ws.onmessage = messageHandler; // on message event
ws.onclose = connect; // reopen websockets when closed by discord
}
我想做的事情可以简单地使用discord.js来完成:
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.on('ready', function () {
console.log("Connected !")
})
bot.on('message', message => {
if (message.content === 'ping') {
message.reply('pong !')
}
})
bot.login(token)
请帮忙吗?
答案 0 :(得分:1)
我是提供此演讲的人。虽然讲课代码确实与Discord进行了交互,但这并不是最理想的方法。我个人建议使用discord.js创建可以响应您ping的机器人。
作为参考,我在课堂上演示的演讲旨在展示websocket的功能。它在浏览器中执行,而不是在node.js的帮助下执行。
在后台,discord.js很好地处理了与Discord websocket网关的连接。它响应诸如心跳之类的事件,并确保Discord网关不会从不活动状态启动客户端。我在演讲中演示的代码一次只能运行约30秒钟,然后才能从Discord启动以使其处于非活动状态。
但是,如果您对讲座感到好奇,那么将会记录来自Spring 18的会议,并且可以here观看。
希望有帮助!