Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Cool-Coding authored Sep 17, 2018
1 parent c2ac3c9 commit d2f8366
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@

## 功能层级图

粗粒度分一下,可以分为三层:Desktop层负责UI处理,CommandHandler层负责命令处理,Netty网络层负责数据的网络传输。
粗粒度分一下,可以分为三层:Desktop层负责UI处理,CommandHandler层负责命令处理(接收和发送),Netty网络层负责数据的网络传输。

![功能层级图](https://upload-images.jianshu.io/upload_images/6752673-f8658fede3bab7ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

Expand Down Expand Up @@ -205,9 +205,9 @@ ICommandHandler接口是所有命令处理类的父接口,Netty ChannelHandler

## 暂未解决问题
- 快速按键的情况、双击时响应的比较慢。传输命令需要时间,所以快速按键时命令产生滞后现象,而傀儡端图像传输到控制端后,Swing是单线程处理AWT事件(鼠标、键盘、绘图等),若此时仍在按键,则会阻塞,等到按键结束之后,再进行图像的绘制。进行了如下尝试。
- 将命令发送采用异步方式,将命令存放在队列中,开启一个线程依次处理,这样可以减轻awt工作负担,加快响应屏幕刷新。经测试,屏幕刷新确定快了,但是命令发送的不及时,响应变慢,最终放弃这种方式,依然使用同步发送。
- 鼠标移动时,在移动过程中不发送命令,等待移动结束发送:实现方式是移动事件响应方式中添加一个计数器,再采用一个延迟线程,判断计数器值是否变化,如果延迟时间到时仍没有变化,则发送“移动命令”,但当移动后单击,会先发送单击命令,再发送鼠标移动命令,也不可行。
- 傀儡端在发送屏幕截图时,与上一次进行比较,如果没有变化,则不发送,减少发送数据量,也减少awt负担。
> 1. 将命令发送采用异步方式,将命令存放在队列中,开启一个线程依次处理,这样可以减轻awt工作负担,加快响应屏幕刷新。经测试,屏幕刷新确定快了,但是命令发送的不及时,响应变慢,最终放弃这种方式,依然使用同步发送。
> 2. 鼠标移动时,在移动过程中不发送命令,等待移动结束发送:实现方式是移动事件响应方式中添加一个计数器,再采用一个延迟线程,判断计数器值是否变化,如果延迟时间到时仍没有变化,则发送“移动命令”,但当移动后单击,会先发送单击命令,再发送鼠标移动命令,也不可行。
> 3. 傀儡端在发送屏幕截图时,与上一次进行比较,如果没有变化,则不发送,减少发送数据量,也减少awt负担。
## 一点心得

Expand Down

0 comments on commit d2f8366

Please sign in to comment.