Node JS和鼠标

3
我正在尝试使用Node.js作为鼠标记录器来评估以下设置的可行性。我知道有一些简单的JS鼠标记录器带有定时器和数组,但是它们在定时方面不够高效(由于JS计时器类中的毫秒偏差)。
假设我想要能够执行以下操作:
1)我想要在本地缓冲当前鼠标位置而不是每次更改都推送它,并在固定间隔(例如5秒)内推送数据。这是否可能?
2)如果可以,此鼠标移动的流将保存为二进制文件。然后可以将二进制文件流传输到另一个客户端。
总的来说,我很难理解流的概念。据我理解,流只是发送到客户端的数据块。这正确吗?

我不能理解你使用node.js的原因,因为它是用来驱动服务器的。它在实际捕获鼠标数据方面并没有任何作用。 - Deestan
我想使用这种方法来解决鼠标录制延迟问题,使其与运行js录制器的计算机性能分离。如果您使用简单的js定时器+数组写入记录鼠标,则js定时器的不准确性会在客户端电脑为播放保留较少资源时对播放产生影响。这可能导致延迟,即不准确的播放。 - toxicate20
Node.JS 是一个控制台世界,它本身仅能通过 C/C++ 包装器捕获操作系统事件。因此我想这不是一个处理事件的问题,而是从浏览器中以最短的延迟获取该事件的问题。对吗? - Eugene Hauptmann
1个回答

2

1) 可以的,我建议您使用事件发射器和事件监听器逻辑。

2) 当然可以,但请告诉我们更清楚您要做什么。同时,您可以查看socket.io解决方案以进行数据流传输,或npm install ws。同样,这取决于您正在开发什么。

此外,还有基于RTMP协议的更复杂和功能强大的解决方案,但我不知道为什么您需要在此发送几个字节。如果您必须将这些数据块发送给多个订阅者,则也可以考虑广播的想法。


1
这种方法的主要原因是,基于JS计时器类的JS性能鼠标回放不够准确(约5毫秒),特别是当与RTMP协议等流媒体配合使用时。这就是为什么我认为同时流传给定音频和鼠标格式可以消除这些计时器问题,因为信息会作为“捆绑包”发送到客户端。 - toxicate20
你应该在操作系统层面行动,或者至少在浏览器层面上进行。因为任何DOM渲染器的嵌入式JavaScript引擎都会对任何事件处理程序有延迟,这涉及ECMA规范。因此,目前的问题不是关于传输层,而是降低获取这些事件数据的延迟。所以我建议您处理WebKit源代码或某些操作系统的本地库,以获得有关鼠标位置和状态信息的最小延迟。 - Eugene Hauptmann
是的,你说得对,鼠标光标的'render'操作总是容易出现时间问题。我的想法是,在同时流媒体两种媒体类型时,延迟是“同步”的,而不是从后台的Flash播放器进行rtmp回放以及从js进行鼠标回放(即有两个独立运作的“时钟”)。 - toxicate20
我不确定我是否理解你正在尝试做什么。你是在同时显示两个独立电脑上的鼠标位置吗? - Eugene Hauptmann
不,我知道这可能会让人感到困惑。我正在尝试连续记录鼠标动作,然后将其推送到服务器。另一个用户可以与音轨一起从服务器流式传输鼠标动作到他的计算机上(基本上就像视频,但是它是一个音频和鼠标层)。但我不确定这是否会规避定时器问题。 - toxicate20

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接