feat(websocket): IOS14 compatibility due to unsupported BroadcastChannel
This commit is contained in:
parent
e96037a073
commit
b06b040e5c
|
@ -1,4 +1,17 @@
|
||||||
export const toServer = new BroadcastChannel("toServer");
|
// Define a fallback mock class only if BroadcastChannel is undefined
|
||||||
export const toClient = new BroadcastChannel("toClient");
|
const BC: typeof BroadcastChannel = typeof BroadcastChannel !== 'undefined'
|
||||||
export const toWebsocketCtrl = new BroadcastChannel("toWebsocketCtrl");
|
? BroadcastChannel
|
||||||
export const toClientCtrl = new BroadcastChannel("toClientCtrl");
|
: class {
|
||||||
|
constructor(name: string) {
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
postMessage(_: any) {}
|
||||||
|
close() {}
|
||||||
|
addEventListener(_: string, __: any) {}
|
||||||
|
removeEventListener(_: string, __: any) {}
|
||||||
|
} as unknown as typeof BroadcastChannel;
|
||||||
|
|
||||||
|
export const toServer = new BC("toServer");
|
||||||
|
export const toClient = new BC("toClient");
|
||||||
|
export const toWebsocketCtrl = new BC("toWebsocketCtrl");
|
||||||
|
export const toClientCtrl = new BC("toClientCtrl");
|
|
@ -127,7 +127,7 @@ class WebsocketClassic implements IWebsocketService{
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getWebsocketService(): IWebsocketService {
|
export function getWebsocketService(): IWebsocketService {
|
||||||
if (typeof SharedWorker !== 'undefined') {
|
if (typeof SharedWorker !== 'undefined' && typeof localStorage !== 'undefined') {
|
||||||
return WebsocketShared.getInstance();
|
return WebsocketShared.getInstance();
|
||||||
} else {
|
} else {
|
||||||
return WebsocketClassic.getInstance();
|
return WebsocketClassic.getInstance();
|
||||||
|
|
Loading…
Reference in New Issue