Я хочу нажать это значение на router.PORTS [i] .packetdata , но это не дает мне точного значения .. функция push также включает и дает мне неправильное значение .. Неверный код находится в строке 72.Javascript push не выводит правильное значение
но когда я попробовал router.PORTS [i] .packetdata = message; в строке 72. Значение правильное, но оно не нажимается на массив.
function Router(PORTS){
rex = this;
}
Router.prototype = {
"PORTS": [],
connect: function(devicename,PORT){
devicename.PORT = PORT;
this.PORTS.push(devicename);
},
totalPackets: function(PORT){
if(PORT){
for (var i=0;i<rex.PORTS.length;i++)
{
if(rex.PORTS[i].PORT == PORT){
console.log('total packets by PORT', rex.PORTS[i])
}
}
}else{
return rex.packetdata.length;
}
},
totalBytes: function(){
totalBytes = [];
result = 0;
for (var i=0;i<rex.packetdata.length;i++)
{
totalBytes.push(rex.packetdata[i].message.length)
}
for (var i = 0; i< totalBytes.length; i++) {
result += totalBytes[i];
}
return result;
},
packetdata: []
}
function Device(ip){
this.ip = ip;
}
Device.prototype = {
DeviceName: "",
IP: this.ip,
PORT: "",
data:[],
incomingBuffer: "",
totalPackets:"",
totalBytes:"",
emit: function(data,packets){
rex.packetdata.push(packets);
},
packetdata: []
}
function Packet(ip,message) {
this.ip = ip;
this.message = message;
for (var i=0;i<rex.PORTS.length;i++)
{
if(router.PORTS[i]['ip'] == ip){
router.PORTS[i].incomingBuffer = router.PORTS[i].incomingBuffer + this.message;
// I want to push this value to router.PORTS[i].packetdata
// my code router.PORTS[i].packetdata.push(message);
router.PORTS[i].packetdata = message;
console.log(ip, router.PORTS[i].ip);
}
else{
//console.log('invalid')
}
}
}
Packet.prototype = {
ip: this.ip,
message: this.message
};
router = new Router(['WAN', 'LAN1', 'LAN2']);
device1 = new Device('192.168.0.1');
router.connect(device1, 'LAN1');
device2 = new Device('192.168.0.10');
router.connect(device2, 'LAN2');
wan = new Device('62.88.120.10');
router.connect(wan, 'WAN');
wan.emit('data', new Packet('192.168.0.1', 'Hello '));
wan.emit('data', new Packet('192.168.0.10', 'Hi,'));
wan.emit('data', new Packet('192.168.0.10', ' guys'));
wan.emit('data', new Packet('192.168.0.1', 'world!'));
wan.emit('data', new Packet('192.168.0.1', 'shit!'));
router.totalPackets();
router.totalBytes();
router.totalPackets('LAN1');