fix: ws prefix url in electron (#1896)

This commit is contained in:
Peng Xiao
2023-04-12 22:11:47 +08:00
committed by GitHub
parent 25d7f7c848
commit 95aa86cdf0
17 changed files with 237 additions and 261 deletions
+28
View File
@@ -0,0 +1,28 @@
import { config, getEnvironment } from './config';
import { isValidIPAddress } from './is-valid-ip-address';
let prefixUrl = '/';
if (typeof window === 'undefined' || getEnvironment().isDesktop) {
// SSR or Desktop
const serverAPI = config.serverAPI;
if (isValidIPAddress(serverAPI.split(':')[0])) {
// This is for Server side rendering support
prefixUrl = new URL('http://' + config.serverAPI + '/').origin;
} else {
prefixUrl = serverAPI;
}
prefixUrl = prefixUrl.endsWith('/') ? prefixUrl : prefixUrl + '/';
} else {
const params = new URLSearchParams(window.location.search);
if (params.get('prefixUrl')) {
prefixUrl = params.get('prefixUrl') as string;
} else {
prefixUrl = window.location.origin + '/';
}
}
const apiUrl = new URL(prefixUrl);
const wsProtocol = apiUrl.protocol === 'https:' ? 'wss' : 'ws';
const websocketPrefixUrl = `${wsProtocol}://${apiUrl.host}`;
export { prefixUrl, websocketPrefixUrl };