1754100
这两天给老师写一个web端→服务器端→硬件的项目。 现在就是在web端选定好操作数据后先发送到服务器端,然后服务器端发送给硬件,硬件设备是200多个传感器。
今天写程序的时候出现的一个问题就是:如果现在只有一个传感器,web端是能很好的和硬件通讯的,如果将硬件数量加到2个或者2个以上,如果我选择对A硬件进行发送数据,而另外的B,C不发送数据,就会出现一组数据会传给A硬件3遍。
我放部分代码,看大家能不能帮我分析下。
var express=require("express");
var app=express();
var cluster=require("cluster");
var TCP=require("net").createServer(); //创建tcp服务器
if(cluster.isMaster){
var wk=cluster.fork();
var http=require("http");
var server=http.createServer(app);
server.listen(8080);
app.post("/",function(req,res){
var data=req.body; //获取从web端post过来的数据
wk.send(data); //将数据发送给worker
})
}
else if(cluster.isWorker){
var socketArr=[];
TCP.on("connection",function(socket){
socketArr.push(socket);
process.on("message",function(data){
socketArr[0].write("123");
//这里如果只有一个硬件相连,发送数据没问题,但是如果有A,B,C 3个硬件设备相连,那么A会收到3组“123”,而B,C 2个设备都不会受到数据。那么我应该怎么处理才能使A只能收到1组“123”呢?
})
})
}