我有一个node.js net
tcp服务器,我从客户端接收json数据。我想缓冲它直到整个json块到达,而不是解析它,也许只是将它转发到其他地方。哪些模块与最新节点(0.6.x)兼容?
应该很快,如果它是纯粹的js对我来说更好。
湾
答案 0 :(得分:0)
哼,用于缓冲的网络模块,用于解析器的JSON.parse(),抱歉看起来很明显但是...... 查看 : https://github.com/nodejitsu/node-http-proxy 转发
答案 1 :(得分:0)
在重新考虑这个问题并用一个非常简单直接的解决方案来解决它之后,我一直在研究这个问题。
我的应用程序正在接收utf-8编码的JSON数据,有时候是非常大的数据。最后,我还有我的JSON文档块,我需要完成它才能成功解析它们。
我的解决方案是一个简单的字符串缓冲区变量,我填充传入的数据,只要我收到一个“新行”,即“\ n”。然后我“传递”要解析的数据并继续用下一条消息填充缓冲区。
我的代码如下:
var buffer = '';
client.on('data', function(data) {
if (data.indexOf('\n') < 0) {
buffer += data;
} else {
var msg = buffer + data.substring(0, data.indexOf('\n'));
buffer = data.substring(data.indexOf('\n') + 1);
console.log('Sending msg: ' + msg);
}
}
此解决方案仅适用,因为我的协议基于utf-8并且'\ n'作为分隔符。