《温油轻远程开发日志》第一章:技术选型
底层数据传输通道肯定是选用webrtc协议栈。它天生就是适用于远程桌面的。
首先,它自动建立传输通道。它使用ICE协议来建立数据通道,只要简单配置中继服务器和信令服务器,就可以快速方便建立传输通道。
其次,它有媒体流和数据流。我们都知道,webrtc分为MediaStream和DataChannel,我们完全可以用MediaStream传输被控端桌面画面,同时使用DataChannel传输键鼠动作和文件。
最后,它比较成熟。理论上它自适应带宽,可靠传输等等,而且会一直优化。
也有缺点,就是webrtc是一对一的,如果一个受控端同时被多个人控制,可能对受控端的电脑负载造成成倍的压力。
被控端的底层使用webrtc,上层应用我准备使用sciter做界面支撑。上层应用的选型首先是要跨平台,其次要有现代的UI,且对我来说,保持发行版的尺寸也很重要。
符合前两个条件的一般有Qt和Chromium(如Electron等)。但都太大。
sciter是一个html(css)/js解析绘制库。一般的css和js都支持,而且没有多余的东西(例如webgl/mse等),因此很小,windows下的库只有6M左右。
它还是跨平台的,也可以使用c++来与底层交互(即暴露c++接口与js互操作)。
综上所述,完美符合我的要求,很难不选择它。
主控端就不需要特别的技术。直接使用h5的webrtc/websocket等接口即可。将受控端的画面绘制到video标签,且将键鼠事件传过去。
认真你就输了,一直认真你就赢了!

浙公网安备 33010602011771号