BHznJNs分享一次 TCP 和 UDP 间的技术决策 中发帖

记一次 TCP 与 UDP 间的技术决策
背景
我最近在开发 InputShare 的付费版本,在开发过程中,一直收到内测用户反馈的鼠标定位不准的问题,具体表现为鼠标在安卓设备端时不时会大幅度移动一下。我尝试用 AI 改了好几版的通信逻辑都不行。
InputShare 是什么?
InputShare 是我开发的一个开源项目,旨在让电脑于安卓平板/手机共用同一套键盘鼠标。
最开始如何优化?
最开始的逻辑很简单,鼠标事件监听,收到一个移动事件就发送一个。这个实现起来简单,但是问题也很明显:如果用户使用的鼠标的回报率(或者叫轮询率)较高,事件发送的频率会非常高,按鼠标的不同,最高能达到数千赫兹。
于是我后来修改了逻辑,核心思想就是在监听移动事件之外另起一个线程,在这个线程中尽可能地以固定间隔向发送线程中推事件,这样可以统一程序在不同鼠标回报率下的行为,使用同样的发送速率。这个版本已经会好一...