JavaScript: service worker a subdoména

hknmtt

  • ***
  • 117
    • Zobrazit profil
    • E-mail
JavaScript: service worker a subdoména
« kdy: 02. 12. 2024, 21:00:46 »
Mam SharedWorker ktory mi pri vyvoji na lokale funguje, lebo vsetky subory su servirovane z rootu cez hotreload server.

Mam ale problem na produkcnej verzii kde su vsetky frontendove veci servirovane zo subdomeny. Takze index.html len smeruje na subdomenu foo.bar.com/moje.css a foo.bar.com/moje.js. A foo.bar.com/moje.js potom vola foo.bar.com/worker.js.

Lenze tym ze je to subdomena tak origin je odlisny a teda mi ten worker realne nefunguje. Ten worker len otvori websocket na server a pocuva na spravy, ktore nasledne posuva dalej kodu ktory na ne reaguje. Je to shared worker aby sa pri viac otvorenych taboch nerobili duplicitne spojenia.

Otazka teraz je ako to poriesit aby fungoval "normalne" aj ked bezi na subdomene a teda?


hknmtt

  • ***
  • 117
    • Zobrazit profil
    • E-mail
Re:JavaScript: service worker a subdoména
« Odpověď #1 kdy: 02. 12. 2024, 23:38:55 »
Vidim ze github pouziva kvazi alias.

V index.html importuju:
Kód: [Vybrat]
<link rel="shared-web-socket-src" href="/assets-cdn/worker/socket-worker-1a9b1a7a6108.js">
Ktore nasledne len robi:
Kód: [Vybrat]
importScripts('https://github.githubassets.com/assets/socket-worker-1a9b1a7a6108.js')
Akurat neviem ako potom ten worker importuju na https://github.githubassets.com subdomene aby fungoval, lebo je to stale subdomena proste. Jedine ze ten embed prehliadac berie ako ze bezi pod povodnym originom, i ked sa importuje vlastne na dvoch miestach...


hknmtt

  • ***
  • 117
    • Zobrazit profil
    • E-mail
Re:JavaScript: service worker a subdoména
« Odpověď #3 kdy: Dnes v 00:46:19 »
Hm, tak absolutne vobec nic nefunguje. Proste mat assety na inej domene/subdomene totalne *** cely javascript z hladiska workerov. Je to logicke kedze keby mohli "externe" workery mat pristup k aktivnemu kontextu tak by to bola bezpecnostna diera jak poleno. Ale aj na druhu stranu to znacne komplikuje veci ak clovek importuje nejaky js ktory ma workery tak vlastne su kompletne nefunkcne.