4Manuals

  • PDF Cloud HOME

如何使2个网站互相交流 Download

    CSS / JS-如何覆盖一个孩子而不是其他孩子的父母过渡 反应:更改方向后触发重新渲染和offsetWidth的重新计算 我的Javascript从'string'转换为'integer'或'number'无效 如何删除外部索引并合并内部json 在React Native 图片无法通过javascript刷新 如何在react图表上的datakey中操作DateTime 在Cypress中保存变量 如何从作为请求传递的输入类型数据绑定中提取数据 通过dropzone laravel通过电子邮件发送多个图像

我有2个网站托管在localhost上,它们的端口不同,而我试图使第一个仅发送数据,第二个仅接收数据。之前,我仅通过一个网站就实现了这一目标。用户可以登录,登录的用户可以更改数据,并且该数据将被发送给所有其他用户。未登录的用户只能查看页面。但是有很多问题。参与其中将解决一些问题。我只是在看一些视频和粘贴代码的情况下试图在没有后端经验和知识的情况下完成所有这些操作,对此我感到抱歉,我知道这是错误的。我发现了一些问题,但无法使其正常工作。所以这是我糟糕的代码:

这是网站的node.js代码,它将发送数据

var express = require("express");

var app = express();
var server = app.listen(3000);
app.use(express.static('public'));
var socket = require("socket.io");
var io = socket(server);
io.sockets.on('connection', newConnection);

function newConnection(socket)
{
  console.log('Connection: ' + socket.id);
  socket.on('data', dataMsg);
  function dataMsg(data)
  {
    socket.broadcast.emit('data', data);
  }
}

这是网站的javascript代码,它将发送正常工作的数据 通过单击某些按钮从HTML调用Btw函数press1(),press2()等

let ps = 2.5;
let bl = 3.5;
const socket = io('http://localhost:3000');
function update(data)
{
  buttons[0].time = data.btn11;
  buttons[0].price = data.btn12;
  buttons[1].time = data.btn21;
  buttons[1].price = data.btn22;
  buttons[2].time = data.btn31;
  buttons[2].price = data.btn32;
  buttons[3].time = data.btn41;
  buttons[3].price = data.btn42;
}

let buttons = [];
buttons[0] = new Button(ps);
buttons[1] = new Button(ps);
buttons[2] = new Button(ps);
buttons[3] = new Button(bl);


let arr = [];
arr[0] = [document.getElementById("prviprvi"), document.getElementById('prvidrugi')];
arr[1] = [document.getElementById('drugiprvi'), document.getElementById('drugidrugi')];
arr[2] = [document.getElementById('treciprvi'), document.getElementById('trecidrugi')];
arr[3] = [document.getElementById('cetvrtiprvi'), document.getElementById('cetvrtidrugi')];

var tempD = setInterval( () => {
  var data = {
    btn11 : buttons[0].time,
    btn12 : buttons[0].price,
    btn21 : buttons[1].time,
    btn22 : buttons[1].price,
    btn31 : buttons[2].time,
    btn32 : buttons[2].price,
    btn41 : buttons[3].time,
    btn42 : buttons[3].price
  }
  socket.emit("data", data);
  for(var i = 0; i < 4; i++)
  {
    buttons[i].update();
    buttons[i].show(arr[i][0], arr[i][1]);
  }
},100);

function press1()
{
  buttons[0].press();
}

function press2()
{
  buttons[1].press();
}

function press3()
{
  buttons[2].press();
}

function press4()
{
  buttons[3].press();
}


function Button(tempD1)
{
  this.val = tempD1;
  this.pressed = false;
  this.startingTime = Date.now();
  this.endingTime = Date.now();
  this.hours = 0;
  this.min = 0;
  this.sec = 0;
  this.price = 0;
  this.time = "0:0:0";

  this.show = function(span1, span2)
  {
    span1.innerHTML = this.time;
    span2.innerHTML = this.price + " Din";
  }

  this.update = function()
  {
    if(this.pressed)
    {
      this.endingTime = Date.now();
      this.tempD = this.endingTime - this.startingTime;
      this.sec = parseInt((this.tempD / 1000) % 60);
      this.min = parseInt(((this.tempD / 1000) / 60) % 60);
      this.hours = parseInt((((this.tempD / 1000) / 60) / 60) % 24);
      this.time = this.hours + ":" + this.min + ":" + this.sec;
      this.price = this.hours * 60 * this.val + this.min * this.val;
    }
  }

  this.press = function()
  {
    if(this.pressed == false)
    {
      this.startingTime = Date.now();
      this.pressed = true;
    }
    else
    {
      this.pressed = false;
    }
  }
}

这是用于接收数据的网站的node.js

  var express = require("express");

    var app = express();
    var server = app.listen(3001);
    app.use(express.static('public'));
    var socket = require("socket.io");
    var io = socket('localhost:3000');
    io.sockets.on('connection', newConnection);

    function newConnection(socket)
    {
      console.log('Connection: ' + socket.id);
      socket.on('data', dataMsg);
      function dataMsg(data)
      {
        socket.broadcast.emit('data', data);
      }
    }

这是用于接收数据的网站的javascript代码

let ps = 2.5;
let bl = 3.5;
const socket = io('http://localhost:3000');
socket.on('data', update);
function update(data)
{
  buttons[0].time = data.btn11;
  buttons[0].price = data.btn12;
  buttons[1].time = data.btn21;
  buttons[1].price = data.btn22;
  buttons[2].time = data.btn31;
  buttons[2].price = data.btn32;
  buttons[3].time = data.btn41;
  buttons[3].price = data.btn42;
}

var tempD = setInterval( () => {
  for(var i = 0; i < 4; i++)
    buttons[i].show(arr[i][0], arr[i][1]);
}
let buttons = [];
buttons[0] = new Button(ps);
buttons[1] = new Button(ps);
buttons[2] = new Button(ps);
buttons[3] = new Button(bl);

let arr = [];
arr[0] = [document.getElementById("prviprvi"), document.getElementById('prvidrugi')];
arr[1] = [document.getElementById('drugiprvi'), document.getElementById('drugidrugi')];
arr[2] = [document.getElementById('treciprvi'), document.getElementById('trecidrugi')];
arr[3] = [document.getElementById('cetvrtiprvi'), document.getElementById('cetvrtidrugi')];

function Button(tempD1)
{
  this.val = tempD1;
  this.pressed = false;
  this.startingTime = Date.now();
  this.endingTime = Date.now();
  this.hours = 0;
  this.min = 0;
  this.sec = 0;
  this.price = 0;
  this.time = "0:0:0";

  this.show = function(span1, span2)
  {
    span1.innerHTML = this.time;
    span2.innerHTML = this.price + " Din";
  }

  this.update = function()
  {
    if(this.pressed)
    {
      this.endingTime = Date.now();
      this.tempD = this.endingTime - this.startingTime;
      this.sec = parseInt((this.tempD / 1000) % 60);
      this.min = parseInt(((this.tempD / 1000) / 60) % 60);
      this.hours = parseInt((((this.tempD / 1000) / 60) / 60) % 24);
      this.time = this.hours + ":" + this.min + ":" + this.sec;
      this.price = this.hours * 60 * this.val + this.min * this.val;
    }
  }

  this.press = function()
  {
    if(this.pressed == false)
    {
      this.startingTime = Date.now();
      this.pressed = true;
    }
    else
    {
      this.pressed = false;
    }
  }
}

问这可能太多了,但我还是会这样做: 如何允许访问仅发送带有正确密码的数据的用户。 当用户访问网站时,将要求他输入密码,如果他输入正确的密码,将被进一步转发。我上次用JavaScript做到了,但是任何人都只能去检查元素并查看密码

谢谢!

0 个答案:

没有答案



Similar searches
    目录和文件存在时“尝试获取空数组的长度”-全新安装 模拟器上的AVPlayer可以访问tmp视频文件,但设备不能访问 为什么我的程序不接受我返回的布尔结果? 涉及接口的多个实现的Json Custom序列化 Samsung SR-34RMB Refrigerator User Manual