使用SocketIO实时更新HTML中的数据

时间:2018-07-16 04:02:21

标签: javascript html node.js socket.io

我如何只用某个用户就能将信息从服务器(index.js)扔到html(index.html)来查看更改?我正在为此使用socketIO。

Index.js:

var ctr = 0;
async.whilst(
  function () { return ctr < resp.length },
  function (Next) {
    var objResp = {};
    objResp = om.setKeyValue(objResp, 'fname',      resp[ctr].F_NAME);
    objResp = om.setKeyValue(objResp, 'lname',      resp[ctr].L_NAME);
    objResp = om.setKeyValue(objResp, 'address',    resp[ctr].U_ADD);

    arrVar.push(objResp);
    ctr++;
    Next();
  },
  function (err) {
    io.sockets.emit('user joined', { output: arrVar });
    arrVar = [];
  }
);

我希望无论用户是谁,都(通过index.js)操纵html中的数据,但唯一的限制是特定用户(例如“管理员”)只能看到数据,而其他用户则只能看到看到其他页面或什么都不显示。

index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>SAMPLE</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="http://192.168.1.1:3000/socket.io/socket.io.js"></script>
    <link rel="stylesheet" href="/styles.css">
  </head>
  <body>
    <table border=1>
      <thead>
        <th><center>FIRST NAME</center></th>
        <th><center>LAST NAME</center></th>
        <th><center>ADDRESS</center></th>
        <th></th>
      </thead>
      <tbody id="online"></tbody>
    </table>
    <script>
    var socket = io.connect('ws://192.168.1.1:3000');

    socket.on('user joined', function(data){
      var res = "";

      for(var ctr = 0; ctr < data.output.length; ctr++){
        res += '<tr>';
          res += '<td><center>' + (data.output)[ctr].fname        + '</center></td>';
          res += '<td><center>' + (data.output)[ctr].lname        + '</center></td>';
          res += '<td><center>' + (data.output)[ctr].address  + '</center></td>';
          res += '</tr>';
        }
      $("#online").html(res);
    });
    </script>
  </body>
</html>

每当用户访问服务器(在这种情况下为192.168.1.1:3000)时,数据都会更新。

截至目前,我所遇到的问题是,无论html是否发生更改,无论是否进行管理,每个人都可以看到数据和更改。

预先感谢

0 个答案:

没有答案