我有一个nodejs监听tcp端口并从Flash XMLSocket获取内容。如果我尝试从flash中的一个消息中推送大量数据(
更新
我在这里找到了类似的问题here。但没有明确的答案。我知道我的消息结束应该是null字节,但你能否给我一个存储不完整消息并避免与下一个/并发消息重叠的示例?
更新2
在maerics的回答之后,我做了一些类似的事情。
XMLSocket.send(long_message)
),我总是会在整个消息传输时触发事件stream.on("data", function(d) {
,但我希望它在整个消息传输完成后才发生。
Flash的XMLSocket将数据作为以null字节结尾的UTF8编码字符串传输。
如何控制我的消息一致性?更新
我在这里找到了类似的问题here。但没有明确的答案。我知道我的消息结束应该是null字节,但你能否给我一个存储不完整消息并避免与下一个/并发消息重叠的示例?
更新2
在maerics的回答之后,我做了一些类似的事情。
var server = net.createServer(function(stream) {
var dataBlock = "";
stream.on("data", function(d) {
processChunk(d);
});
function processChunk(data) {
var chunks = data.split("\0");
while (chunks.length > 1) {
if (dataBlock.length > 0) {
dataBlock += chunks.shift();
processIncompingMessage(dataBlock);
dataBlock = "";
}
else {
processIncompingMessage(chunks.shift());
}
}
dataBlock += chunks.shift();
}
}