这是非常优雅的,并且直到今天仍然运行顺利,但它有一个缺点:作为远程显示器同时渲染到本地显示器的唯一方法是在服务器旁边本地运行与VNC兼容的客户端并将其连接到本地主机。因此,我们有几个客户要求我们扩展功能以包括镜像到本地显示器。通常,他们的用例是嵌入式设备 - 通常由Qt Wayland Compositor提供支持 - 用户希望按需向远程用户广播显示。
例如,远程用户可以是支持部门的代表,他们需要准确查看最终用户在屏幕上看到的内容,以便有效地帮助他们。应用程序应主要不受阻碍地运行,但根据请求,它应该能够与远程用户共享其内容,以及接受远程输入(可选)。Qt中的VNC QPA插件没有涵盖此用例,因为必须关闭并重新启动应用程序才能进行任何远程连接,并且只要系统在此模式下运行,最终用户将无法在屏幕上看到任何内容。
因此,我们着手为此提供解决方案,并提出了Qt VNC服务器模块。这将作为与Qt 6.4兼容的技术预览提供给商业客户。此处提供了文档快照。
This is pretty elegant and works smoothly to this day, but it has one downside: The only way you can render to a local display simultaneously as a remote display, is by running a VNC-compatible client locally alongside the server and connecting it to localhost. Due to this, we've had several customers request that we expand the capabilities to include mirroring to a local display. Typically, their use case is an embedded device - often backed by Qt Wayland Compositor - where users want to broadcast the display to a remote user on demand.
For instance, the remote user could be a representative from support who needs to see exactly what the end user is seeing on screen in order to help them efficiently. The application should primarily be running unencumbered, but on request it should be able to share its contents with a remote user, as well as accept remote input (optionally). The VNC QPA plugin in Qt does not cover this use case, since the application would have to be closed and restarted in order for any remote connection to be possible, and the end user would not be able to see anything on their screen as long as the system is running in this mode.
So we set out to provide a solution to this and came up with the Qt VNC Server module. This will be available to commercial customers as a technology preview which is compatible with Qt 6.4. The documentation snapshot is available here.