通过node.js套接字发送文本JSON如何处理'\ n \ r'符号

我有客户端 – 服务器应用程序,服务器端在Flash上​​的Node.js客户端,通过套接字彼此进行通信。 我写string化JSON到套接字,并在服务器上读取数据:

socket.on('data', function(data) { console.log(JSON.parse(data.toString()); var json = JSON.parse(data.toString()) }); 

一切正常,直到我开始发送包含'\ n \ r'的长文本消息到服务器JSON。 在那我得到错误:

SyntaxError:意外的input结束

因为'\ n \ r'意味着包装的结束。 从文本中删除“\ n \ r”并不是我需要它正确显示文本的好方法。 请给我最好的方法来处理这个问题。 提前致谢。

一个简单的方法是tryparsing,如果没有,然后等待更多的数据:

 var json = ''; socket.on('data', function(data) { try { json = JSON.parse(data); } catch (e) { json += data; try { json = JSON.parse(json); // Now it's fine. } catch (e) { // Wait for more. return; } } // Now it's fine. // At the end do; json = ''; }); 

使用JSON.stringify(data)而不是.toString()