Mongodb Node.js-在Mongo中存储套接字

Mongodb Node.js-在Mongo中存储套接字,mongodb,node.js,websocket,socket.io,Mongodb,Node.js,Websocket,Socket.io,我正在创建一个聊天服务器,以nodejs和mongo作为演示。我有它,每个用户都可以向另一个经过身份验证的用户发送消息。我现在要做的是使其具有可伸缩性 我的想法是将套接字保存在MongoDB中,然后让几个节点服务器运行,检查该用户在DB中是否在线,如果在线,则将消息发送到该套接字 虽然当我试图通过JSON.Stringify将套接字存储到数据库中的类型:String,但它给了我一个错误:“集群主进程中的异常:将循环结构转换为JSON” 任何帮助都会很好 谢谢,如果要缩放Socket.IO文件,请

我正在创建一个聊天服务器,以nodejs和mongo作为演示。我有它,每个用户都可以向另一个经过身份验证的用户发送消息。我现在要做的是使其具有可伸缩性

我的想法是将套接字保存在MongoDB中,然后让几个节点服务器运行,检查该用户在DB中是否在线,如果在线,则将消息发送到该套接字

虽然当我试图通过
JSON.Stringify
将套接字存储到数据库中的
类型:String
,但它给了我一个
错误:“集群主进程中的异常:将循环结构转换为JSON”

任何帮助都会很好


谢谢,

如果要缩放Socket.IO文件,请查看以下资源:




这不是一个好主意,因为您的
套接字实际上不是文档或数据。此外,我没有看到将其存储在MongoDB中的方法。什么是使其可扩展的最佳解决方案?为什么不使用流行的协议和服务器模块,如XMPP?我非常简要地介绍了该项目的摘要,但它将在一个每天获得数百万页面浏览量的游戏网站上运行。这将比一个聊天服务器要复杂一点,但我不想用这些应用程序将要做什么来回答这个问题,基本上我似乎找不到一个好的解决方案来全局保存套接字以供多个服务器检查。qrpike,Redistore正是为了这个目的。实现它甚至导致今年对Socket.IO进行了重大重写:)