您的位置:首页 > 运维架构 > 网站架构

spice协议详解(三):spice架构和通信

2017-08-25 17:13 633 查看
一.相关概念

Channel(通道):

Client和server通过通道进行交互。每个通道类型专用于一种特殊数据类型传输。每个通道用一个专用的TCP套接字,可能是安全的(用SSL加密)或不安全的。在客户端每个通道有一个专用的线程。因此通过不同的线程优先级,每个通道被安排不同的传输功能,通道包括:

主通道( main ),由 RedClient 实现的主通道;

显示通道(display channel),处理图形命令,图像以及视频数据流;

输入通道(inputs channel),用于鼠标键盘输入;

位置通道( cursor channel ),指示设备的位置、可视性和光标形状;

音频播放通道(playback channel),指示来自服务器待由客户端播放的音频;

音频捕捉频道 ( record channel ),指示客户端捕捉的音频;

每个Channel就是客户端与服务端一个的网络连接。

客户端将每个Channel实现为一个单独的线程,实现方式是定义一个以单独线程运转的RedChannel基类,然后从此基类中派生所需要的具体功能类。

客户端启动后会首先与服务器建立连接,此连接即为MAIN_CHANNEL,MAIN_CHANNEL建立起来之后,客户端首先向服务器发送查询命令,请求服务器支持的Channel类型,然后客户端对所有支持的Channel一一创建对应的Channel类实例,每个实例都会开启自己的工作线程并向服务端发起连接请求,建立网络连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构 虚拟化 云桌面