【问题标题】:socketjs: request value from serversockjs:从服务器请求值
【发布时间】:2019-05-08 19:00:41
【问题描述】:

我正在尝试通过 socketjs 从服务器请求值。

这里是client.js

function onClick({clientX, clientY}) {      
      console.log("====== #click: "+clickNo);
      clickNo++;
      var srcWidth, srcHeight, mouseClickX, mouseClickY;
      console.log("onmouseEnter: "+clientX +", "+clientY)

      mouseClickX = clientX;
      mouseClickY = clientY;

      socket.emit('screenSize');
      socket.on('resolution', function (data) {
          srcWidth = data.srcWidth;
          srcHeight = data.srcHeight;
          console.log("resolution: "+srcWidth +', '+srcHeight);
          console.log("mouseClick= "+mouseClickX +', '+mouseClickY)
          //moveMouseToPos(mouseClickX, mouseClickY);
      });
}

在 Server.js 中

socket.on('screenSize', ()=>{console.log("screenSize Req")
  socket.emit('resolution',{
    srcWidth: robot.getScreenSize().width,
    srcHeight: robot.getScreenSize().height

  });
});

我可以从服务器获取值,但问题是我也收到了旧值。 这是控制台日志

====== #click: 0
onmouseEnter: 882, 143
resolution: 1366, 768
mouseClick= 882, 143
====== #click: 1
onmouseEnter: 919, 352
resolution: 1366, 768
mouseClick= 882, 143
resolution: 1366, 768
mouseClick= 919, 352
====== #click: 2
onmouseEnter: 772, 452
resolution: 1366, 768
mouseClick= 882, 143
resolution: 1366, 768
mouseClick= 919, 352
resolution: 1366, 768
mouseClick= 772, 452
====== #click: 3
onmouseEnter: 447, 389
resolution: 1366, 768
mouseClick= 882, 143
resolution: 1366, 768
mouseClick= 919, 352
resolution: 1366, 768
mouseClick= 772, 452
resolution: 1366, 768
mouseClick= 447, 389

你可以看到,在第一次点击时,客户端收到了完美的值,但是在第二次点击时,它打印了两次,在第三次点击时,它打印了 3 次。看起来,这个函数用之前的参数调用了 3 次。

有什么想法吗?

【问题讨论】:

标签: socket.io client-server robotjs


【解决方案1】:

不确定旧值,但我看到一个问题,客户端“socket.on('resolution'”)中的套接字侦听器,该侦听器被多次创建,总是在调用函数 OnClick 时。侦听器应该在函数之外创建。其他情况下,同一事件会有多个侦听器。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多