Node.js двунаправленная передача клиентских данных сервера - PullRequest
0 голосов
/ 29 мая 2020

Надеюсь, ты сможешь sh меня направить в правильном направлении. Я хочу создать сервер ботов Discord с прикрепленной базой данных MySQL. И несколько клиентов, подключенных к этому боту, которые имеют json баз данных и могут запускать и перезапускать игровой сервер.

Мой вопрос в том, как лучше всего передавать данные с сервера клиенту и наоборот.

Я пробовал всего net проблема, которая у меня возникла, заключается в том, хочу ли я получить все серверы от клиента и отправили его обратно на канал в разногласиях. Я бы 1. отправил клиенту пакет с материалами, необходимыми для получения серверов, а также Discord serverID и channelID. 2. Обработайте данные на клиенте и отправьте обратно все запрошенные данные + discord и идентификатор канала в виде нового пакета 3. На боте Discord получите новый пакет и напишите готовое сообщение на канал

Есть ли способ как обратный вызов или обещание, поэтому мне не нужно иметь 3 функции on.data только для одной задачи, и можно ли получить данные и использовать эти данные в той же функции, что и я могу сделать с базой данных, например, я могу do var userid = getidbyname (name) return userservers (userid)

Также я хочу получать данные с сервера на клиент точно так же

Я довольно новичок в node.js и я думаю, вся эта асинхронная c штука меня действительно достает

Вот краткая версия того, что у меня есть.

Сервер:

Module.Server.WriteToIp(IP, ["GetPermissionByUserID","SendPermission","DiscordGuildID","DiscordChannelID","UserID"])
module.exports.WriteToIp = function WriteToIp(Ip,data) 
{
    sockets.forEach(element => {
        if(element == `${Ip}`)
        element.write(JSON.stringify(data))
    });
}

И обработчик на клиенте

module.exports.HandleData = function HandleData(socket,bytes){
    var everything = bytes.toString()
    const args = everything.split(',');
    const func = args.shift()
    var argsCount = args.length -1 
    if(func == "GetPermissionByUserID" ){
        client.Write('response with new func for the server and collected data')
    }  
}

И то же самое для Сервера, я думаю, это тоже большой беспорядок код не очищен или что-то в этом роде, но вы поняли

Надеюсь, вы, ребята, можете мне помочь здесь

...