クライアントが JSON を送信する場合、TCP ソケット データ ハンドラは try ブロックで正常に動作します。ただし、telnet 経由でいくつかの基本的な「端末コマンド」もサポートしたかったので、パーサーが失敗した場合、catch ブロックはサポートされているものを認識しようとしますが、常にデフォルトの応答 SyntaxError を取得しています...
socket.on('data', function(data){
try{
var json = JSON.parse(data);
switch(json.event){
default:
console.log('unhandled event:'+json.event);
break;
}
}catch(err){
console.log("CLIENT SAID: "+data);
switch(data){
case "echo":
socket.write("ECHO:"+data+"\n");
break;
case "clients":
socket.write("CLIENTS:"+clients.length+"\n");
break;
default:
socket.write('ERROR:'+err+"\n");
break;
}
}
});