Sometimes, you want to lazy intialize an object such as websocket to make it’s only connected when needed, (virtual) proxy pattern can help.
Instead of initializing directly:
const socket = new Websocket(url);
Using the Proxy:
// The proxy controls a web socket instanceclass WebSocketProxy { constructor(options) { this.options = options; } connect() { if (this.socket) { return this.socket; } this.socket = new Websocket(this.options.url); return this.socket; }} const socket = new WebSocketProxy({ url: 'wss://www.example.com/socketserver' });socket.connect();