lua 为 UDP 序列化数组

lua serialize array for UDP

我正在尝试通过 lua 脚本客户端通过 udp 将几条数据发送到 node.js 服务器。

包含字符串的字符串变量被传递给函数。在函数内部,正在创建一个数组以添加另外 2 个字符串,这些字符串是在函数外部定义的 id,用于在接收端识别消息的目的地。

我已经确认函数中定义了所有 3 个变量。然后我创建数组 bossMsg 并尝试通过 sendto() 发送它。我相信这是发生错误的地方,因为我需要序列化数组,但阅读信息我仍然不清楚如何执行此操作。有没有一种简单的方法来序列化数据,以便可以通过 sendto() 发送数据?

在此先感谢您的帮助。

PandaBoss.sendBossMessage = function(msg)

    bossMsg = {msg, g_ID, c_ID}
    socket.try(PandaBoss.UDPSendSocket:sendto(bossMsg, ip, port))

end

sendto 向指定的 IP 地址和端口号发送数据报。数据报是一个 字符串,其中包含数据报内容。

所以你必须将bossMsg序列化为一个字符串。 最简单的方法就是序列化为JSON。像这样:

-- https://github.com/rxi/json.lua
json = require "json"

PandaBoss.sendBossMessage = function(msg)

    bossMsg = {msg, g_ID, c_ID}
    socket.try(PandaBoss.UDPSendSocket:sendto(json.encode(bossMsg), ip, port))

end