lua序列化数组用于UDP

我正在尝试通过lua脚本客户端向node.js服务器发送一些数据。

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

我已确认函数内定义了所有3个变量。然后我创建数组bossMsg并尝试通过sendto()发送它。我认为这就是错误发生的地方,因为我需要序列化数组,但是读取的信息仍然不清楚如何实现。是否有一种简单的方法将数据序列化以便可以通过sendto()发送?

感谢您提前的帮助。

PandaBoss.sendBossMessage = function(msg)

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

end
点赞
用户2634513
用户2634513

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
2020-05-01 09:47:51