簡體   English   中英

我應該使用什么協議以及它的文檔是什么?

[英]What protocol should I use and what are the docs for it?

所以我正在嘗試構建一個Discord機器人。 這些類型的線程傾向於在stackoverflow上得到很多關注,所以我希望這不會發生在我身上。

此特定功能可作為儀表板問題的臨時解決方案。 由於glitch.com托管的性質,它應該在http不活動5分鍾后入睡。 我已經通過添加一個每4分鍾ping一次URL的腳本解決了這個問題,但這引起了另一個問題。 我認為正在發生的事情是,因為該腳本和僵屍程序腳本一直在運行,並且從不在技術上“完成”,它永遠不會讓任何傳入連接實際加載網頁。 因此,我對該問題的解決方案是創建另一個故障項目,該項目將充當儀表板網站,並從bot項目傳輸信息。 當然,我需要創建更多通過某些互聯網協議相互通信的腳本。 機器人記錄的信息都使用node-json-db npm庫記錄在私有JSON數據庫中。

我的問題是:我不知道什么協議最適合這種事情。 即使我確實知道,那么我必須深入研究文檔以獲取我正在尋找的信息。

我的問題是:我應該使用什么協議,以及我需要閱讀哪些文檔?

我在這里包含了一些代碼片段:

機器人的服務器代碼(我將添加用於與儀表板通信的腳本):

// server.js
// where your node app starts

// init project
const express = require('express');
const app = express();
const JsonDB = require('node-json-db');
const db = new JsonDB("myDataBase", true, true);

// we've started you off with Express, 
// but feel free to use whatever libs or frameworks you'd like through `package.json`.

// http://expressjs.com/en/starter/static-files.html
app.use(express.static('public'));

// http://expressjs.com/en/starter/basic-routing.html
app.get('/', function(request, response) {
  response.sendFile(__dirname + '/views/index.html');
});

app.post('/login/c3RvcCBoYWNrZXIh', function(request, response) {
  var servername = request.param('servername');
  var password = request.param('password');
  if (db.getData("/" + servername + "/password") === password) {
response.json(db.getData("/" + servername));
  } else {
response.json(null);
  }
});
// listen for requests :)
const listener = app.listen(process.env.PORT, function() {
  console.log('Your app is listening on port ' + listener.address().port);
});

// to keep the bot alive, since glitch puts projects to sleep after 5 mins of inactivity.
const http = require('http');
setInterval(() => {
  http.get(`http://${process.env.PROJECT_DOMAIN}.glitch.me/`);
}, 270000);

儀表板網站上的server.js:

// server.js
// where your node app starts

// init project
const express = require('express');
const app = express();
const request = require('request');

// we've started you off with Express, 
// but feel free to use whatever libs or frameworks you'd like through `package.json`.

// http://expressjs.com/en/starter/static-files.html
app.use(express.static('public'));

// http://expressjs.com/en/starter/basic-routing.html
app.get('/', function(request, response) {
  response.sendFile(__dirname + '/views/index.html');
});



app.post('/login', function(request, response) {
  var servername = request.param('servername');
  var password = request.param('password');
  if ("thereisnopassword" === password) {
    response.sendFile(__dirname + '/dashboard/index.html');
  } else {
    response.sendFile(__dirname + '/views/wronginfo.html');
  }
});

// listen for requests :)
const listener = app.listen(process.env.PORT, function() {
  console.log('Your app is listening on port ' + listener.address().port);
});

我也有這個,但是通過簡單地將代碼放在http循環之前啟動express服務器來解決它。

// Require packages
const http = require('http');
const express = require('express');
const app = express();

// Express
app.get("/", (request, response) => {
  response.sendStatus(200);
});
app.listen(process.env.PORT);

// Interval
setInterval(() => {
  http.get(`http://${process.env.PROJECT_DOMAIN}.glitch.me/`);
}, 240000);

// Bot code
const Discord = require('discord.js');
const client = new Discord.Client();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM