-1

クライアントが 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;
            }

        }

    });
4

1 に答える 1