未知编码Node.js Net / TCP

我正在尝试使用node.js net发送消息

我不断收到一个错误事件的string:

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 }; 

为什么即使使用string也会出错? 这是不是意味着对象?

写入一个套接字看起来像这样: socket.write(data[, encoding][, callback]) 。 编码应该是utf8 ,而不是utf-8