Search code examples
javascriptweb-worker

Create a WebSocket with a dynamic path using a WebWorker which is in a javascript type BLOB


How can I open a new WebSocket which is inside a javascript type BLOB WebWorker using a path that is dynamic?

let DYNAMIC_PATH = 'ws://localhost'; // dynamically changing

let ww = URL.createObjectURL(new Blob([
  var ws = new WebSocket(DYNAMIC_PATH); // <-- HOT TO GET THIS VARIABLE

  self.addEventListener('message', (event) => {
      console.log('@@', event.data);
  }, false);
  ], { type: 'application/javascript' }));

sendToWW = function (data) {
  ww.postMessage(data);
};

Solution

  • You can pass a value to function by creating parameter.

    let DYNAMIC_PATH = 'ws://localhost'; // dynamically changing
    
    let ww = (DYNAMIC_PATH)=> URL.createObjectURL(new Blob([
    var ws = new WebSocket(DYNAMIC_PATH); // <-- HOT TO GET THIS VARIABLE
    
    self.addEventListener('message', (event) => {
      console.log('@@', event.data);
    }, false);
    ], { type: 'application/javascript' }));
    
    sendToWW = function (DYNAMIC_PATH,data) {
    ww(DYNAMIC_PATH).postMessage(data);
    };