File sharing with pseuCo.com

The IDE provides two mechanisms how it can connect to and interact with pseuCo.com. They are presented in the following.

Sharing API
WebSockets

You can choose your preferred mechanism in the Settings page.

The sharing API

Established for file exchange between multiple users, it does not matter whether you query the API using pseuCo.com or the IDE. Hence the API can be misused to exchange files with pseuCo.com, by simply uploading a file from whatever tool you use, and downloading it again with the other tool.

While having a well-established solution working with any modern browser, the drawback of this approach is obvious: To connect two local processes running on your machine, an external online service is used. Thus one may aim at getting rid of the API and establish a local connection. However, this approach also has drawbacks, as discussed in the next section.

A WebSockets based approach

The problem with any local solution is security: Since pseuCo.com is served over HTTPS and all modern browsers restrict insecure connections from secure environments, every local service provided by the IDE must also use HTTPS. However, this would require a signed certificate, and since the IDE only operates on localhost, who would provide a signed certificate for that hostname?

Nevertheless, it turned out that most browsers allow insecure connections using WebSockets. Hence the IDE provides a WebSocket server, from which pseuCo.com is able to retrieve files from and upload files too, which are then opened in the IDE.

Browser settings

As you can conclude from the compatibility table above, Chrome, Edge and Opera inherently support this solution, while Safari seems to not support it at all. Only Firefox requires you to take action by specifically enabling required features:

  1. Open about:config.
  2. Accept the displayed warning. You know what you do. If you crash something, you are the only one to blame.
  3. Find network.websocket.allowInsecureFromHTTPS and activate it by double click.