Change worker stuff to use worker-loader

Previously we used webworkify-webpack to make web-workers work. We now
use the worker-loader webpack plugin which is available since webpack 4
to handle workers.

It still doesn't want to connect to the server, but all JS errors in the
dev console are gone. Progress.
This commit is contained in:
lawl 2020-03-31 16:05:14 +02:00
parent d3e47d7d29
commit f7ec12aa8d
5 changed files with 111 additions and 18 deletions

View file

@ -4,8 +4,9 @@ import EventEmitter from 'events'
import { Writable, PassThrough } from 'stream'
import toArrayBuffer from 'to-arraybuffer'
import ByteBuffer from 'bytebuffer'
import webworkify from 'webworkify'
import worker from './worker'
//import work from 'webworkify-webpack'
//import worker from './worker'
import Worker from './worker'
/**
* Creates proxy MumbleClients to a real ones running on a web worker.
@ -13,7 +14,7 @@ import worker from './worker'
*/
class WorkerBasedMumbleConnector {
constructor () {
this._worker = webworkify(worker)
this._worker = new Worker() //work(require.resolve('./worker'))
this._worker.addEventListener('message', this._onMessage.bind(this))
this._reqId = 1
this._requests = {}

View file

@ -3,16 +3,18 @@ import mumbleConnect from 'mumble-client-websocket'
import toArrayBuffer from 'to-arraybuffer'
import chunker from 'stream-chunker'
import Resampler from 'libsamplerate.js'
import CodecsBrowser from 'mumble-client-codecs-browser'
// Polyfill nested webworkers for https://bugs.chromium.org/p/chromium/issues/detail?id=31666
import 'subworkers'
// Monkey-patch to allow webworkify-webpack and codecs to work inside of web worker
/* global URL */
window.URL = URL
//if (typeof window === 'undefined') global.window = {}
//window.URL = URL
// Using require to ensure ordering relative to monkey-patch above
let CodecsBrowser = require('mumble-client-codecs-browser')
//let CodecsBrowser = require('mumble-client-codecs-browser')
export default function (self) {
let sampleRate