Gibt es eine Möglichkeit für zwei Tabs innerhalb eines Browsers einen Mutex (in JavaScript) zu teilen?Mutex Lock (JS) Wird zwischen mehreren Tabs eines Browsers geteilt?
Ich arbeite an einer Web-App mit node.js & socket.io, und ich möchte, dass die verschiedenen Registerkarten eine einzige Verbindung mit dem Server teilen. Der sogenannte 'Leader'-Tab ist der einzige, der die Verbindung aufrechterhält, während Nachrichten an den Rest von ihnen alle über diesen weitergeleitet werden. Im Moment benutze ich einen Führungswahlalgorithmus, um den Anführer zu wählen, aber da es ein oder zwei Sekunden dauert, einen neuen Anführer wieder zu wählen, wenn der aktuelle ausfällt, frage ich mich, ob es eine bessere Methode gibt gleich.
Es ist nicht wie die verschiedenen Registerkarten sind vollständig isoliert voneinander ... localstorage ist ein Paradebeispiel für den Informationsaustausch zwischen ihnen. Also, wenn sie es zulassen, wird es nicht besser sein, richtige Kanäle für die Kommunikation und den Austausch zu schaffen (natürlich, alle unterliegen der gleichen Domain-Politik). Wie für eine Erweiterung/ein Addon, habe ich darüber nachgedacht, aber ich wollte eine browserunabhängigere Lösung. –
Ja. Das hatte ich vergessen. Sie könnten https://developer.mozilla.org/en-US/docs/DOM/window.postMessage einsehen. Aber Sie müssen immer noch einen Verweis auf ein anderes Fenster übergeben. –
Ich habe diese Seite schon einmal durchgegangen. Das * Major * -Problem besteht darin, dass Sie einen Verweis auf das Fenster benötigen, an das Sie die Nachricht senden möchten. Ich kann das nicht haben. Dies ist der Punkt, an dem das Storage-Ereignis von localStorage gewinnt, da es auf allen Registerkarten desselben Ursprungs ausgelöst wird, unabhängig davon, wie sie geöffnet wurden. –