当我需要拆分数据时,我必须将其转换为字符串。
下面是我的数据处理函数:
socket.on('data', function (data) {
var str = data.toString().split("|");
switch(str[0]){
case "setUser":
setUser(str[1], socket);
break;
case "joinChannel":
joinChannel(str[1], socket);
break;
}
});当我从AS3客户端发送像"setUser|Name“这样的数据,然后发送"joinChannel|main”这样的数据时。NodeJS将其作为一个数据包读取。
我的问题是如何使其成为两个不同的数据包?
发布于 2012-05-07 23:56:50
通常,您会将所有数据缓冲在一起,然后将其解析为一个字符串。或者,如果您需要在传入时拆分它,那么您可以在data回调中进行拆分,并跟踪任何剩余的部分命令,以便在接收到的net块之前添加。
var data = '';
socket.setEncoding('utf8');
socket.on('data', function(chunk) {
data += chunk;
});
socket.on('end', function() {
var lines = data.split('\n');
lines.forEach(function(line) {
var parts = line.split('|');
switch (parts[0]) {
case 'setUser':
setUser(str[1], socket);
break;
case 'joinChannel':
joinChannel(str[1], socket);
break;
}
});
});https://stackoverflow.com/questions/10485060
复制相似问题