如果客户端发送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;
}
}
});
而不是'console.log(“...”+ data)',尝试'console.log(data)'看'data'是否实际上是一个字符串。 – Passerby
当你说你得到“语法错误”响应时,你是什么意思?你从哪里得到的?它从何而来? – Pointy
@Passerby - 有趣的是,它记录<缓冲区68 65 79 0d 0a> –