Hi Fariborz, It is good to know you are interested.
We will create a pull request for 4.11.2 LTS in the next weeks. -Wei Fariborz Navidan <mdvlinqu...@gmail.com> 于2019年4月4日周四 上午10:29写道: > Hello, > > It's a great and valuable job because we have already observed that noVNC > integrated into control panels such as Virtualizor has great speed and > efficiency in comparison with CloudStack's native console proxy > implementation. Especially noVNC is more comfortable when user is on on a > low speed or high latency internet connection. > > We were looking forward to investigate current CPVM and try to integrate > noVNC. It's pleasure to us that this has already been implemented and hope > we can take advantage of it in near future. > > Best regards > > On Thu, Apr 4, 2019 at 12:34 PM Wei ZHOU <ustcweiz...@gmail.com> wrote: > > > Hello CloudStack developers and users, > > > > We (as leaseweb) would like to share our NoVNC solution on our cloudstack > > platforms with the CloudStack community . The feature was implemented in > > 2012 and we have made some changes since that. We have used it for more > > than 7 years and it is very stable. > > > > Unlike the pull request submitted by sachinnitw1317 ( > > https://github.com/apache/cloudstack/pull/2204 ) ,which is based on the > > novnc as the front end (different from the cloudstack) and the java > > websocket proxy (same as cloudstack) in console proxy vm (cpvm), we use > > modified novnc and websockify to launch a websockify proxy in cpvm . > > > > Here are some technical details: > > > > (1) We use two open source projects: noVNC ( > https://github.com/novnc/noVNC > > , 0.6.2) and websockify (https://github.com/novnc/websockify ,latest) > > (2) We modified websockify so we can launch it without the target > > server/port and token. > > (3) We reuse the 'path' in novnc and websockify to pass some necessary vm > > informations from cloudstack to novnc and websockify. path is encrypted > in > > cpvm / java, which contains target server,target port, vnc password, > client > > ip and timestamp. When a new client comes, websockify will decrypt 'path' > > to get the vm informations above, and check if the client ip matches and > > the timestamp has not expired. > > (4) We moved the server/client initialization from novnc(js) to > > websockify(python). When a new client comes, websockify will create a > > websocket connection to the target server and port ,then check the > protocol > > version and authentication scheme, use the password in step (3) in vnc > > authentication . > > (5) Add a global setting in cloudstack for encryption in java and > > decryption in websockify. > > > > Compared to the cloudstack native console (ajax/java websocket proxy) and > > the novnc console purposed in PR 2204 (novnc /java websocket proxy) , we > > believe that the novnc console based on websockifty (written in python) > is > > more efficient than the consoles based on java websocket proxy. > > > > If you have any questions or concerns, please feel free to ask. If nobody > > objects, we will port our changes to cloudstack 4.11.2 LTS and submit a > > pull request on cloudstack github, so everyone who is interested can > merge > > and build it in his/her fork and test it . > > > > Considering that novnc and websockify are both open source projects, and > we > > also use some open source code (such as in pyDes.py VNC password > > authentication) , it would be appreciated if anyone can help us on > software > > licensing issues. > > > > > > Kind regards, > > > > Wei Zhou > > Principal Cloud Engineer > > LEASEWEB > > >