我有一个程序使用套接字将JSON数据从客户端发送到服务器,并从服务器向Node.js中的客户端发送一些响应。对于大多数情况,这非常有效,但我一直在遇到从服务器通过套接字发送大量数据的问题。在一个特定情况下,当服务器尝试发送JSON数据时,JSON.stringify
内存不足并返回RangeError
。我尝试使用msgpack
来解决这个问题,以及使用流式传输,但似乎在客户端使用它似乎需要太长时间。
在Node.js中通过网络发送大量数据是否比普通套接字更好?
答案 0 :(得分:1)
我不知道这个建议对你的情况是否有帮助或可行。当您编写JSON发送服务器时 - >由于某种原因客户端似乎耗尽内存并报告范围错误。既然您尝试了流式传输和msgpack(我假设在Node.js中)并且它们无法正常工作,那么您似乎面临客户端错误。
我能看到的唯一解决方案是将JSON分成两个或三个(无论你发现大小的限制),通过套接字发送它们,并在另一侧合并它们。我知道这听起来很复杂,因为你没有关于JSON文件实际有多大的具体信息(在msgpack之前和之后),或者在带有流的缓冲区中,这似乎是唯一可行的解决方案。