将套接字连接保存到JSOn

时间:2019-01-08 20:03:31

标签: node.js socket.io

我在nodejs中使用socket.io websockets。我试图对socket对象进行字符串化处理,以便将其保存到我的数据库中。这是我在做什么:

socket.on('open-room', function(arg, callback) {
    var socketStr = JSON.stringify(socket);
}

但是我遇到以下错误:

TypeError: Converting circular structure to JSON

1 个答案:

答案 0 :(得分:3)

如果您正在寻找有关如何将对象转换为JSON字符串而又不会遇到圆形结构错误的常规解决方案(通常,您将在日志记录或调试时执行此操作),请查看S.O。回答Converting Circular Structure to JSON。如果输出格式到底是什么并不重要,则可以使用内置的util.inspect(socket)

如果出于日志记录之外的其他原因执行此操作,请注意,socket.io Websocket不能序列化/反序列化(您将无法使用数据库记录来重新创建有效的Websocket)。 / p>

您可能会幸运地设计出一个仅包含您真正关心的键的更具体的JSON对象,并将其存储在数据库中,而不是尝试对整个对象进行字符串化。