【问题标题】:How to make a ping-pong discord bot with websocket in Nodejs?如何在 Nodejs 中使用 websocket 制作乒乓不和谐机器人?
【发布时间】:2019-12-03 17:43:34
【问题描述】:

我正在尝试在 Nodejs 中制作一个简单的乒乓不和谐机器人,而没有像 Nodejs 中的 discord.js 那样的任何库

我认为使用 websockets 和不和谐的其余 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)

有什么帮助吗?

【问题讨论】:

    标签: node.js websocket discord


    【解决方案1】:

    我是提供这个演讲的人。虽然讲座代码确实与 Discord 交互,但它并不是这样做的最佳方法。就我个人而言,我建议使用 discord.js 创建一个可以响应您的 ping 的机器人。

    作为参考,我在课堂上演示的讲座是展示 websockets 的功能。它在浏览器中执行,而不是在 node.js 的帮助下。

    在底层,discord.js 可以很好地处理与 Discord websocket 网关的连接。它响应诸如心跳之类的事情,并确保 Discord 网关不会从不活动状态引导客户端。我在讲座中演示的代码一次只能运行大约 30 秒,然后才会从 Discord 启动以停止活动。

    但是,如果您对讲座感到好奇,春季 18 的课程将被实时录制,并且可以通过here 观看。

    希望对你有所帮助!

    【讨论】:

      猜你喜欢
      • 2021-04-12
      • 2015-11-22
      • 2012-05-29
      • 2019-11-05
      • 2022-01-07
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多