《温油轻远程开发日志》第一章:技术选型

  底层数据传输通道肯定是选用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标签,且将键鼠事件传过去。

posted @ 2022-11-06 14:29  云中双月  阅读(52)  评论(0)    收藏  举报