2014-04-22 45 views
2

我想了解如何使用Node.js淨未知編碼的Node.js網/ TCP

我不斷收到帶有字符串錯誤事件來發送消息:

buffer.js:377 
    throw new TypeError('Unknown encoding: ' + encoding); 
     ^
TypeError: Unknown encoding: foobarstringfoobarstringfoobarstringfoobarstring 
    at Buffer.write (buffer.js:377:13) 
    at new Buffer (buffer.js:215:28) 
    at createWriteReq (net.js:675:33) 
    at Socket._write (net.js:640:18) 
    at doWrite (_stream_writable.js:219:10) 
    at writeOrBuffer (_stream_writable.js:209:5) 
    at Socket.Writable.write (_stream_writable.js:180:11) 
    at Socket.write (net.js:613:40) 
    at someModule.<anonymous> (/home/engine/private_js/N.cs.js:120:43) 
    at someModule.EventEmitter.emit (events.js:95:17) 

必備我JSON.stringifyJSON.parse

首先我net.createServer()...

var net=require('net'); 
var server=net.createServer(function(push){ 
    someModule.on('eventA',function(A,B,OBJ){ 
     push.write('eventA',{'A':A,'B':B,'OBJ':OBJ},'utf-8'); 
     }); 
    someModule.on('eventX',function(str){ 
     push.write('eventX',str,'utf-8'); 
     }); 
    push.on('error',function(err){ 
     console.dir(err); 
     }); 
    }); 
server.listen(8005,function(){}); 

...然後我net.connect()到服務器...

var net=require('net'); 
var pull=new net.Socket(); 
pull.connect(8005,'127.0.0.1',function(){ 
    pull.on('eventA',function(_){ 
     eventA(_.A,_.B,_.OBJ); 
     }); 
    pull.on('eventX',function(str){ 
     eventX(str); 
     }); 
    pull.on('error',function(err){ 
     console.dir(err); 
     }); 
    }); 

...和傳遞數據轉化爲普通功​​能

function eventA(A,B,OBJ){ 
    //run some code 
    }; 

function eventX(str){ 
    //run some code 
    }; 

爲什麼即使對於字符串也會出錯?這是不是意味着對象?

回答

0

寫入套接字如下所示:socket.write(data[, encoding][, callback])。編碼應該是utf8,而不是utf-8