| 53 | |
| 54 | async getOrCreate(type, uuid, onmessage=null) { |
| 55 | function createSocket() { |
| 56 | let protocol = self.isSecureContext ? "wss" : "ws"; |
| 57 | let port = self.isSecureContext? "{{ports[wss][0]}}" : "{{ports[ws][0]}}"; |
| 58 | let url = `${protocol}://{{host}}:${port}/msg_channel?uuid=${uuid}&direction=${type}`; |
| 59 | let socket = new WebSocket(url); |
| 60 | if (onmessage !== null) { |
| 61 | socket.onmessage = onmessage; |
| 62 | }; |
| 63 | return new Promise(resolve => socket.addEventListener("open", () => resolve(socket))); |
| 64 | } |
| 65 | |
| 66 | let socket; |
| 67 | if (type === "read") { |