我目前正在开发一个通过 websocket 向 Meteor 服务器发送消息的 C 应用程序。 我正在使用 jansson用于 JSON 转换和 nopoll作为 websocket 库。
除了当我尝试发送非常大的消息(大约 15 000 000 个字符)时,两种方式(发送/接收)都工作正常。我认为(我不确定)消息已发送到服务器,因此 nopoll 库不应该是问题的根源。但是,我确信 Meteor 没有按他应有的方式处理该消息,因为从未调用该方法 (RPC)。
我发现 websocket 限制等于 64 位无符号值的最大值,所以这不应该是问题所在。
另一方面,即使在 DDP specification 中,我也没有找到 DDP 消息的最大长度。 .
您是否知道 DDP 限制或其他我没有想到的参数?
最佳答案
因为我正在研究客户端和服务器在同一台机器上的架构,所以我不受网络的限制。我想我推送的信息太多太快了,套接字里装满了数据。
解决方案很简单:按照 LP 的建议将数据分成几个片段并实现流量控制。
我还找到了 Mongo C driver这可能是另一种解决方案,因为我应该能够按照 Mikkel 的建议将数据直接推送到数据库。
谢谢你们的帮助。
关于c - 通过 websocket 失败的 DDP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41122037/