NodeJS套接字数据分割

当我需要拆分数据时,我必须将其转换为string。
这是我的数据处理函数:

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将其作为一个数据包读取。
我的问题是如何使这两个不同的数据包?

通常情况下,你可以将所有的数据缓冲在一起,然后parsing为一个string。 或者,如果您需要分解它,那么您将在datacallback中进行拆分,并跟踪任何剩余的部分命令,以便在接收到的networking块上添加。

 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; } }); });