Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mamayaya1
GitHub Repository: mamayaya1/game
Path: blob/main/projects/draw-the-hill/scripts/offlineclient.js
4624 views
1
"use strict";
2
{
3
class OfflineClient {
4
constructor() {
5
this._broadcastChannel = typeof BroadcastChannel === "undefined" ? null : new BroadcastChannel("offline");
6
this._queuedMessages = [];
7
this._onMessageCallback = null;
8
if (this._broadcastChannel) this._broadcastChannel.onmessage = (e) => this._OnBroadcastChannelMessage(e);
9
}
10
_OnBroadcastChannelMessage(e) {
11
if (this._onMessageCallback) {
12
this._onMessageCallback(e);
13
return;
14
}
15
this._queuedMessages.push(e);
16
}
17
SetMessageCallback(f) {
18
this._onMessageCallback = f;
19
for (let e of this._queuedMessages) this._onMessageCallback(e);
20
this._queuedMessages.length = 0;
21
}
22
}
23
window.OfflineClientInfo = new OfflineClient();
24
}
25