@@ -10,12 +10,6 @@ let listenVisible = false;
1010let deltaTime = 0 ;
1111let challenge = "" ;
1212let workers = [ ] ;
13- $ ( ( ) => {
14- workers = new Array ( navigator . hardwareConcurrency )
15- . fill ( null )
16- . map ( ( ) => new Worker ( "js/worker.js" ) ) ;
17- workers . forEach ( it => it . onmessage = onWorkerMsg ) ;
18- } ) ;
1913$ ( ( ) => {
2014 if ( navigator . serviceWorker ) {
2115 navigator . serviceWorker . register ( "sw.js" ) . catch ( e => {
@@ -62,10 +56,22 @@ $(() => {
6256function setWsStatus ( txt ) {
6357 connectionStatus . innerText = txt ;
6458}
59+ function getWorkers ( ) {
60+ if ( workers . length != 0 )
61+ return workers ;
62+ workers = new Array ( navigator . hardwareConcurrency ) ;
63+ for ( let i = 0 ; i < workers . length ; i ++ ) {
64+ let w = new Worker ( "js/worker.js" ) ;
65+ workers [ i ] = w ;
66+ w . addEventListener ( "message" , onWorkerMsg ) ;
67+ }
68+ return workers ;
69+ }
6570function refreshCorsStatus ( ) {
6671 corsStatus . innerText = "..." ;
67- getIpAddress ( true ) . then ( ip => {
68- return getIpAddress ( false ) . then ( ip2 => corsStatus . innerText = "OK " + ip + ( ip !== ip2 ? " (different IP)" : "" ) ) ;
72+ getIpAddress ( true ) . then ( async ( ip ) => {
73+ const ip2 = await getIpAddress ( false ) ;
74+ return corsStatus . innerText = "OK " + ip + ( ip !== ip2 ? " (different IP)" : "" ) ;
6975 } ) . catch ( e => corsStatus . innerText = "error: " + e ) ;
7076}
7177function addMcAccountToList ( account ) {
@@ -145,7 +151,7 @@ function submittedListen() {
145151 }
146152 else {
147153 let taskId = Math . random ( ) ;
148- workers . forEach ( it => it . postMessage ( {
154+ getWorkers ( ) . forEach ( it => it . postMessage ( {
149155 action : "listen_pow" ,
150156 user : user ,
151157 id : taskId ,
@@ -195,7 +201,7 @@ function onWorkerMsg(e) {
195201}
196202function onCompletedPoW ( e ) {
197203 addToast ( "Offline username" , "Completed proof of work" ) ;
198- workers . forEach ( it => it . postMessage ( { action : "cancel" , id : e . data . id } ) ) ;
204+ getWorkers ( ) . forEach ( it => it . postMessage ( { action : "cancel" , id : e . data . id } ) ) ;
199205 sendSocket ( e . data . msg ) ;
200206}
201207function addListeningList ( userId , username , token ) {
0 commit comments