OpenStack noVNC Chrome浏览器里鼠标不能用的问题




问题症状

用win10平板+Chrome浏览器(60版本,其他版本没测试过)打开云主机的控制台(VNC窗口),后端使用的是novncproxy,通过websocket协议与qemu的vnc server进行通信,其他一切正常,云主机桌面正常可见,可以输入字符,也能点击控制台右上角的“Send CtrlAltDel”并且云主机桌面有反应,但就是移动鼠标没反应,通过vncviewer windows客户端连接到vnc server,鼠标正常,通过微软edge浏览器打开控制台页面,鼠标也正常可用,因此可以确认是Chrome浏览器的问题,但同事的相同版本的Chrome浏览器打开是正常的,怀疑是浏览器插件问题,禁用所有插件后问题还是存在,一度以为是自己人品问题。

解决方法

google搜索了一把,找到很多类似问题,有些是noVNC项目的bug,有些是配置问题,先看了下bug,根据commit的diff,看了下使用的noVNC源码,确认已经修复了相关问题。

之后看Chrome配置,找到一个https://forum.proxmox.com/threads/mouse-not-working-on-console-novnc.32619/,里面提到

于是试着改了下设置,重启Chrome浏览器后鼠标果然正常了,又回头看了下其他同事的这个配置,也都是默认的Automatic,为啥他们是好用的?想了想应该是我的电脑是平板的,支持触摸屏,通过HDMI外接显示器,然后平板的这个Touch Events配置automatic就等同于enabled,而同事们的都是普通的PC机,所以是disabled效果。