使用 Socket.io 将数据从 Chrome for Android 连续传输到 Node.js 服务器

2024-01-08

我需要传输触摸位置 in 安卓版 Chrome 不断地 to a Node.js服务器使用Socket.io。不过,我猜,传输速度太快了。前几个值接收到服务器(第一次接触大约六个值,后来只有两个或三个值),然后似乎出现交通拥堵。在很长一段时间里,服务器什么也没收到。然后,所有丢失的值突然到达服务器。但不是连续的...

我想我必须减少客户端到服务器的流量通过让客户端只发出interval500 毫秒。这个视频 https://youtu.be/U3ZBG6k9Pkc演示以下选项中的最后一个。

到目前为止我尝试过的(没有成功):

  • 在客户端代码中将 setInterval 函数包装在 emit 函数周围:

    setInterval( function(){ 
        Socket.emit( 'position', posX )
    }, 500); 
    
  • 调节排放Date.now()在客户端代码中:

    var timestamp = 0;
    
    // ...
    
    if (Date.now() - timestamp >= 500) {
        Socket.emit( 'position', posX );
        timestamp = Date.now();
    }
    
  • 节流touchmove客户端代码中的事件使用underscore library

    $('#canvas').on("touchmove", _.throttle(function (ev) {
        var e = ev.originalEvent;
        var posX = logCounter + " : " + e.targetTouches[0].pageX;
        $('#div').text(posX);
        socket.emit('position', posX);
        logCounter++;
        return false;
    }, 500));
    

    让我提一下这个片段记录posX两者都在 HTML 上div在网页中AND在服务器的控制台中。浏览器按预期每 500 毫秒记录一次日志,但服务器(通过Socket.io)按预期仅在开头记录,然后中断,然后立即记录所有缺失值。

该项目正在进行中Github https://github.com/fabifiess/syncPos.

有什么想法如何实现平滑(连续)传输?

Edit:

我发现这个问题只存在于我的 Android 手机和 Android 平板电脑上的 Chrome 浏览器中。 该应用程序适用于 Android 版 Firefox、Android 版 Opera 和 iOs 版 Safari。

我怎样才能智胜Chrome?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Socket.io 将数据从 Chrome for Android 连续传输到 Node.js 服务器 的相关文章

随机推荐

  • AWS Elastic mapreduce 似乎没有正确地将流媒体转换为 jar

    我有一个映射器和减速器 当我在管道版本中运行它们时 它们可以正常工作 cat data csv mapper py sort k1 1 reducer py 我使用了弹性mapreducer向导 加载了输入 输出 引导程序等 引导程序成功
  • Pyspark - 使用collect_list时保留空值

    根据接受的答案 in pysparkcollect set或collect list与groupby https stackoverflow com questions 37580782 pyspark collect set or col
  • 安装valgrind,启动时出现致命错误

    我正在安装 Valgrind 但遇到一些问题 我的平台信息 Linux xx ThinkPad X61 3 2 0 39 generic pae 62 Ubuntu SMP Wed Feb 27 22 25 11 UTC 2013 i686
  • 两个 kubernetes 集群之间的 mTLS

    我正在尝试在两个 kubernetes 集群中的两个应用程序之间获取 mTLS 而无需使用 Istio 的方式 通过其入口网关 我想知道以下内容是否可行 对于 Istio Likerd Consul 假设我们有一个 k8s 集群 A 和一个
  • React Router browserHistory 适用于本地,不适用于生产

    每当我在本地使用 browserHistory 时 我都没有问题 但是当我在发货之前测试它时 我会得到一个带有错误的空白页面 因此 当我用 hashHistory 替换 browserHistory 时 一切正常 但我丢失了漂亮的网址 未捕
  • Thymeleaf - 如何有条件地将选中的属性添加到输入

    如你所知 input组件有一个属性 checked是否将复选框标记为默认启用
  • Activity 从下到上滑动,但后台 Activity 不应移动

    我正在尝试将一项活动从底部滑动到顶部 这是我能够做到的 但是 当从底部滑动到顶部时 我的后台活动也滑动到底部 我想将后台活动保持在与原来相同的位置 以便新活动在打开时看起来像是后台活动的覆盖 这是我的slide in up xml
  • 在 R 中将点图保存为 pdf [重复]

    这个问题在这里已经有答案了 当在函数内执行此命令时 我无法将点图保存为 pdf 正常调用时效果很好 df lt data frame a runif 10 b runif 10 c runif 10 x 1 10 pdf test pdf
  • AIDL Client 未绑定到远程服务

    我正在尝试使用远程服务运行简单的乘法 我有 AIDL 服务器文件声明和定义方法 在AIDL中 我在服务器的包名称下复制了与服务器相同的AIDL文件 我已经给出了服务器服务的意图过滤器的操作 我的 AIDL 客户端代码仍然没有连接到该服务 A
  • 本地函数和 SOLID 原则 C#

    我知道从 C 7 0 开始我们可以创建局部函数 但这与实现良好设计模型的 SOLID 原则有何关系 我的意思是 这不会打破单一职责原则 在另一个函数中添加一个函数吗 我们可以委托这个简单的任务在另一个方法或另一个新类中进行计算吗 对于允许我
  • 如何将侦听器从 Fragment 传递到 DialogFragment

    我有我Fragment这就是如何DialogFragment The DialogFragment创建并显示TimePickerDialog dialog 我希望调用 Fragment 来实现imePickerDialog OnTimeSe
  • 如何在 C# 中以编程方式执行方法重载解析?

    当 C 编译器解释方法调用时 它必须使用 静态 参数类型来确定实际调用的是哪个重载 我希望能够以编程方式完成此操作 如果我有一个方法的名称 astring 声明它的类型 一个实例System Type 以及参数类型列表我希望能够调用标准库函
  • 使用 Github 推送提交时出错: fatal: 无法读取用户名

    自从几次以来 我在我的项目中使用 Github 当我想要推送提交时我遇到了问题 首先 我创建了一个存储库 然后我克隆了叉子 使用命令行git clone https github com 并且 在进行修改后 我已成功承诺 git commi
  • 强制所有区域使用相同的布局

    我有以下项目结构 视图 共享 布局 区域 Area1 Views ControllerName Index 区域 AreaN Views ControllerName Index 有什么办法强制所有区域都使用 Layout as a 基地布
  • Git 服务器挂钩:获取正在推送的文件的内容?

    我正在尝试在我的团队中强制执行一些编码规则 为此 我编写了许多客户端挂钩 这些挂钩可以正常工作 但现在我希望当开发人员将其修改推送到中央存储库时运行相同的检查 但它们不起作用 这是我想做的 我想逐行遍历推送的文件 检查是否违反编码约定 如果
  • Chrome 版本 61 中扩展中的 ES6 模块

    这与以下问题不是同一个问题Google Chrome 扩展开发中的 ES6 模块 意外标记 https stackoverflow com questions 36796191因为这已经过时并且已经得到解答 谷歌发布了一份新闻稿 声称 Ch
  • 如何传递元组列表作为 OpenAI Gym 中的动作空间?

    从头开始创建 OpenAI Gym 环境时 必须定义一个动作空间 这是通过数据包 空间 中自己的 数据结构 来完成的 有几种不同类型的空间 如盒子 离散等 我有一个元组列表 我想用作操作空间 有没有办法做到这一点 我本来可以使用spaces
  • 如何从终端运行 google colab?

    我正在 google colab 中运行深度学习模型 它与 colab 笔记本配合得很好 问题是 随着云colab笔记本中深度学习模型训练的进展 我自己的电脑CPU和内存使用率也开始上升 仅 Colab Notebook 浏览器窗口的 RA
  • 调用 RevalidateBackHistory.php 中未定义的方法 Symfony\Component\HttpFoundation\BinaryFileResponse::header()

    我编写了一个中间件 以便用户在登录后无法再次进入登录页面 如果已经登录 它将重定向到管理面板 这是代码 class RevalidateBackHistory public function handle request Closure n
  • 使用 Socket.io 将数据从 Chrome for Android 连续传输到 Node.js 服务器

    我需要传输触摸位置 in 安卓版 Chrome 不断地 to a Node js服务器使用Socket io 不过 我猜 传输速度太快了 前几个值接收到服务器 第一次接触大约六个值 后来只有两个或三个值 然后似乎出现交通拥堵 在很长一段时间