【发布时间】:2011-12-06 13:10:40
【问题描述】:
我有一个 node.js net tcp 服务器,我从客户端接收 json 数据。我想缓冲它,直到整个 json 块到达,而不是解析它,也许只是将它转发到其他地方。有哪些与最新节点(0.6.x)兼容的模块?
应该很快,如果是纯js的话对我来说更好。
b.
【问题讨论】:
标签: javascript node.js
我有一个 node.js net tcp 服务器,我从客户端接收 json 数据。我想缓冲它,直到整个 json 块到达,而不是解析它,也许只是将它转发到其他地方。有哪些与最新节点(0.6.x)兼容的模块?
应该很快,如果是纯js的话对我来说更好。
b.
【问题讨论】:
标签: javascript node.js
嗯,用于缓冲的 net 模块,用于解析器的 JSON.parse(),抱歉似乎很明显,但是... 查看 : https://github.com/nodejitsu/node-http-proxy 转发
【讨论】:
在再次考虑并用一个非常简单直接的解决方案解决它之后,我已经研究了好几个小时。
我的应用程序正在接收 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' 作为分隔符。
【讨论】: