Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Websocket fallback mechanism #181

Open
pravn0993 opened this issue Mar 13, 2024 · 3 comments
Open

Websocket fallback mechanism #181

pravn0993 opened this issue Mar 13, 2024 · 3 comments

Comments

@pravn0993
Copy link

Hello @jcrodriguez-dis,

We are using the VPL plugin for a long time now. Thank you for the wonderful plugin.

According to our use case, we have a lot of users behind firewalls and proxies who are not able to access the programming labs. These firewalls and proxies just block web socket connections even though we use WSS protocol and our MOODLE platform itself using https protocol. While I understand the importance of sockets, does VPL support any fallback mechanism in case WS connection fails? For example, if we use socket.io, it will automatically fall back to long-polling mechanism.

In case VPL doesn't currently have any fallback to sockets, can you guide us on how to implement the same and the changes that would be required in VPL(front end and backend) and Jail server? We will check the possibilities of implementing them.

Have a nice day!

@jcrodriguez-dis
Copy link
Owner

Dear @pravn0993,

Thank you for your continued use of the VPL plugin and for reaching out with your concerns.

Could you please provide more details about your network configuration? Specifically, are your execution servers accessible from the internet? Implementing a fallback mechanism for unreliable connections is indeed a promising solution. However, there are several considerations to address at this stage. Currently, noVNC only operates over WebSocket, and unfortunately, we don't have a socket.io server-side implementation available for C++.

Your suggestion merits thorough consideration, especially in the context of the limitations you've described. It's essential to explore all aspects of implementing such a fallback mechanism within VPL, both on the frontend and backend, as well as on the Jail server.

Best regards,
Juan Carlos

@pravn0993
Copy link
Author

Hi @jcrodriguez-dis

Thanks for your response.

Yes, the jail servers and MOODLE servers are hosted as EC2 instances in AWS and are publicly accessible. The students who connect to the MOODLE platform are behind a proxy network which straight away blocks socket connections. Both MOODLE and Jail servers have valid SSL certificates are accessed from browser through HTTPS protocol.

@jcrodriguez-dis
Copy link
Owner

Dear @pravn0993,

Thank you for providing the additional details about your network configuration.

While the automatic fallback capability of socket.io presents a promising solution, integrating it with our existing system, particularly with the VPL plugin's reliance on WebSocket through noVNC, and our backend's current infrastructure, poses significant development challenges. Specifically, our system's backend, including the Jail server which is primarily developed in C++, does not currently support a socket.io server-side implementation.

Considering these factors, and despite recognizing the potential benefits of such an integration, we do not have immediate plans to incorporate socket.io as a fallback mechanism for WebSocket connections.

I recommend, as a workaround, updating and configuring proxy settings to allow WebSocket connections.

Best regards,

Juan Carlos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants