我正在尝试使用 node.js net 发送消息
我不断收到有关字符串的错误事件:
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.stringify 和 JSON.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
};
为什么连字符串都报错?它不是针对对象的吗??
最佳答案
写入套接字如下所示:socket.write(data[, encoding][, callback])
。编码应该是utf8
,而不是utf-8
。
关于node.js - 未知编码 Node.js Net/TCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227257/