Я использую JSON: закодировать, чтобы подготовить таблицу lua для передачи udp. На другом конце я использую JSON .parse для декодирования, а затем определяю 3 переменные. На стороне передачи я проверяю, что таблица создана и имеет все три переменные, печатая botMsg [0], botMsg [1] и botMsg [3] в журналы перед запуском JSON: encode (botMsg). На принимающей стороне я запускаю obj = JSON .parse (msg) и затем определяю 3 переменные для использования в коде. В итоге я получаю первую переменную obj [0] - botMsg [1], obj [1] - botMsg [2], а obj [2] - не определена.
Ищете идеи, почему это происходит?
Сторона передачи LUA код:
PandaBoss.sendBossMessage = function(msg)
botMsg = {}
botMsg[1] = msg
botMsg[2] = guild_ID
botMsg[3] = channel_ID
env.info(botMsg[1]) --prints msg to data log
env.info(botMsg[2]) --prints guild_id to data log
env.info(botMsg[3]) --prints channel_id to data log
json_string = JSON:encode(botMsg)
socket.try(PandaBoss.UDPSendSocket:sendto(json_string, ip, 31090))
end
Получение node.js код:
server.on('message', function(msg) {
obj = JSON.parse(msg)
bossMsg = obj[0]
guild_ID = obj[1]
channel_ID = obj[2]
console.log(bossMsg); //prints guild_id
console.log(guild_ID); //prints channel_id
console.log(channel_ID); //prints undefined
});
Новое изменение для получателя
server.on('message', function(msg) {
console.log(msg.toString());
obj = JSON.parse(msg)
bossMsg = obj[0]
guild_ID = obj[1]
channel_ID = obj[2]
console.log(bossMsg);
console.log(guild_ID);
console.log(channel_ID);
});