private void createSocket() {
        try {
            // create and connect to a socket
            WebEditorSocket socket = new WebEditorSocket(this.plugin, this.sender, this);
            socket.initialize(this.plugin.getBytesocks());
            socket.waitForConnect(5, TimeUnit.SECONDS);

            this.socket = socket;
            this.plugin.getWebEditorStore().sockets().putSocket(this.sender, this.socket);
        } catch (Exception e) {
            if (!ignoreSocketConnectError(e)) {
                this.plugin.getLogger().warn("Unable to establish socket connection", e);
            }
        }
    }
Encapsulates a session with the web editor.

<p>A session is tied to a specific user, and can comprise of multiple requests to and
responses from the web editor.</p>
common/src/main/java/me/lucko/luckperms/common/webeditor/WebEditorSession.java