第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為Discord網(wǎng)關(guān)設(shè)置心跳功能

如何為Discord網(wǎng)關(guān)設(shè)置心跳功能

Cats萌萌 2022-12-02 10:39:48
這不會是解決一個問題的非常具體的問題,所以很抱歉。這是我之前詢問的有關(guān)為我的 Discord 機(jī)器人網(wǎng)站獲取實(shí)時服務(wù)器計數(shù)的問題的后續(xù)行動。在我看來,websocket 連接是獲取此信息的最佳方式,因為通過 discord.js 獲取此信息占用了太多內(nèi)存,因為 discord.js 所做的遠(yuǎn)遠(yuǎn)超出了我的需要。我知道對于 websocket 連接,我需要獲取連接 URL、連接,然后進(jìn)行心跳并接收心跳確認(rèn)。不過,我在將這些想法轉(zhuǎn)化為代碼時遇到了很多麻煩。到目前為止,我可以請求一個 URL、連接并開始心跳,但我不知道如何 1) 在接收信息的同時保持心跳和 2) 如果連接中斷(我沒有收到確認(rèn))則停止心跳。導(dǎo)致我出現(xiàn)問題的主要原因是無法使用多個消息偵聽器。如果有人能指出正確的總體方向或解決我當(dāng)前的問題,我將不勝感激。當(dāng)前代碼,如果有幫助(我知道它實(shí)際上不起作用):const XMLHttpRequest = require('xmlhttprequest').XMLHttpRequestconst WebSocket = require('ws')let xhr = new XMLHttpRequest()xhr.onload = (req, res) => {    if (xhr.readyState === 4 && xhr.status === 200) {        console.log(xhr.responseText)        main(JSON.parse(xhr.responseText))    } else {        console.error(`ReadyState: ${xhr.readyState}    Status: ${xhr.status}`)    }}xhr.open("GET", 'https://discord.com/api/gateway/bot', false)xhr.setRequestHeader("Authorization", "MY_BOT_TOKEN_THIS_IS_A_PLACEHOLDER_DONT_TELL_ME_ITS_WRONG_IN_COMMENTS")xhr.send()function main(response) {    let socket = new WebSocket(`${response.url}/?v=6&encoding=json`)    var hello    socket.onopen = (event) => {        console.log("Connection established")    }    socket.onclose = (event) => {        console.log(`Connection closed: code=${event.code} reason=${event.reason}`)    }
查看完整描述

2 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

我有一些建議。

  1. let alert在錯誤的地方。它的范圍應(yīng)該在let WebSocket.

  2. 不要removeEventListener。最好有一個消息處理程序,switch (message.op)然后根據(jù)message.op(你命名的hello)的值調(diào)用其他方法。

  3. 如果你真的想removeEventListener,你不能只傳遞類型"message",你還需要傳遞對函數(shù)本身的引用。見這里和下面。

  4. 如果您需要保存第一條消息, 的值hello,那么還要將其范圍限定在文件的頂層。

  5. 當(dāng)你停止心跳時,你不會說你想做什么,但你已經(jīng)有了它的位置,它就是你設(shè)置的地方alive = false。你可以打電話給socket.close()那里或alert你的用戶出了什么問題。取決于您的應(yīng)用程序。

const myHandler = function (data) { /* do stuff with data */ };

socket.addEventListener("message", myHandler);

socket.removeEventListener("message", myHandler);


查看完整回答
反對 回復(fù) 2022-12-02
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊

我嘗試使用不同的代碼,因為我找不到另一個代碼,當(dāng)我嘗試發(fā)送 3 次心跳時遇到問題連接已斷開連接已關(guān)閉:代碼 = 1000 原因 =



查看完整回答
反對 回復(fù) 2022-12-02
  • 2 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號