【发布时间】:2014-11-04 18:23:48
【问题描述】:
我的服务器上有两个 node.js 应用程序并排运行,我不想使用本机 node.js (v0.10.33) 模块网络以轻量级方式在它们之间发送服务器端消息
我打算第一个应用程序向第二个应用程序发送消息。我看到控制台日志listening...,
在第一个应用程序中:
var push='';
var net=require('net');
var server=net.createServer(function(p){
p.on('error',function(err){console.log(err);});
push=p;
setInterval(function(){push.write(JSON.stringify({'f':'ping','data':'stay alive'}));},1000);
});
server.listen(8008,function(){console.log('listening...')});
//a real message might be sent later in the application (this example would need a setTimeout)
push.write(JSON.stringify({'f':'msg','data':'Hello World'}));
在第二个应用程序中,我看到控制台日志open
var net=require('net');
var pull=new net.Socket();
pull.connect(8008,'127.0.0.1',function(){console.log('open');
pull.on('data',function(_){
_=JSON.parse(_);
if(_.f==='ping'){console.log('!!!ping!!!');}
else{console.log(_.data);}
});
pull.on('error',function(err){console.log('pull: '+err);});
});
我没有看到任何其他活动(没有 ping,后来在开放事件之后,没有 hello world)并且没有错误。
如果我使用console.dir(pull) 进行检查,我看不到接受数据的事件,即:ondata 或 onmessage
怎么了?
【问题讨论】:
标签: node.js tcpserver qtcpsocket