Reconnection when signal server is not active and minor changes

This commit is contained in:
2026-03-18 20:45:00 +01:00
parent eb987ac672
commit 141de64767
15 changed files with 229 additions and 27 deletions

View File

@@ -4,6 +4,10 @@ function buildOrigin(protocol: string, host: string): string {
return `${protocol}://${host}`.replace(/\/+$/, '');
}
function originFromUrl(url: URL): string {
return buildOrigin(url.protocol.replace(':', ''), url.host);
}
export function getRequestOrigin(request: Request): string {
const forwardedProtoHeader = request.get('x-forwarded-proto');
const forwardedHostHeader = request.get('x-forwarded-host');
@@ -15,18 +19,24 @@ export function getRequestOrigin(request: Request): string {
export function deriveWebAppOrigin(signalOrigin: string): string {
const url = new URL(signalOrigin);
const host = url.host;
if (host === 'signal.toju.app') {
if (url.hostname === 'signal.toju.app' && !url.port) {
return 'https://web.toju.app';
}
if (host.startsWith('signal.')) {
return buildOrigin(url.protocol.replace(':', ''), host.replace(/^signal\./, 'web.'));
if (url.hostname.startsWith('signal.')) {
url.hostname = url.hostname.replace(/^signal\./, 'web.');
if (url.port === '3001') {
url.port = '4200';
}
return originFromUrl(url);
}
if (['localhost:3001', '127.0.0.1:3001'].includes(host)) {
return buildOrigin(url.protocol.replace(':', ''), host.replace(/:3001$/, ':4200'));
if (url.port === '3001') {
url.port = '4200';
return originFromUrl(url);
}
return 'https://web.toju.app';