add migration
This commit is contained in:
parent
f04526d94e
commit
c3bf004c13
43
src/util/migration/postgres/1745625724865-voice.ts
Normal file
43
src/util/migration/postgres/1745625724865-voice.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class Voice1745625724865 implements MigrationInterface {
|
||||
name = "Voice1745625724865";
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "streams" ("id" character varying NOT NULL, "owner_id" character varying NOT NULL, "channel_id" character varying NOT NULL, "endpoint" character varying NOT NULL, CONSTRAINT "PK_40440b6f569ebc02bc71c25c499" PRIMARY KEY ("id"))`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "stream_sessions" ("id" character varying NOT NULL, "stream_id" character varying NOT NULL, "user_id" character varying NOT NULL, "token" character varying, "session_id" character varying NOT NULL, "used" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_49bdc3f66394c12478f8371c546" PRIMARY KEY ("id"))`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "streams" ADD CONSTRAINT "FK_1b566f9b54d1cda271da53ac82f" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "streams" ADD CONSTRAINT "FK_5101f0cded27ff0aae78fc4eed7" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "stream_sessions" ADD CONSTRAINT "FK_8b5a028a34dae9ee54af37c9c32" FOREIGN KEY ("stream_id") REFERENCES "streams"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "stream_sessions" ADD CONSTRAINT "FK_13ae5c29aff4d0890c54179511a" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "stream_sessions" DROP CONSTRAINT "FK_13ae5c29aff4d0890c54179511a"`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "stream_sessions" DROP CONSTRAINT "FK_8b5a028a34dae9ee54af37c9c32"`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "streams" DROP CONSTRAINT "FK_5101f0cded27ff0aae78fc4eed7"`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "streams" DROP CONSTRAINT "FK_1b566f9b54d1cda271da53ac82f"`,
|
||||
);
|
||||
await queryRunner.query(`DROP TABLE "stream_sessions"`);
|
||||
await queryRunner.query(`DROP TABLE "streams"`);
|
||||
}
|
||||
}
|
@ -83,7 +83,7 @@ export class Server {
|
||||
await loadWebRtcLibrary();
|
||||
} catch (e) {
|
||||
console.log(`[WebRTC] ${yellow("WEBRTC disabled")}`);
|
||||
return Promise.resolve();
|
||||
return;
|
||||
}
|
||||
|
||||
await mediaServer.start(WRTC_PUBLIC_IP, WRTC_PORT_MIN, WRTC_PORT_MAX);
|
||||
|
@ -129,9 +129,10 @@ export async function onVideo(this: WebRtcWebSocket, payload: VoicePayload) {
|
||||
op: VoiceOPCodes.VIDEO,
|
||||
d: {
|
||||
user_id: this.user_id,
|
||||
// can never send audio ssrc as 0, it will mess up client state for some reason. send server generated ssrc as backup
|
||||
audio_ssrc:
|
||||
ssrcs.audio_ssrc ??
|
||||
this.webRtcClient!.getIncomingStreamSSRCs().audio_ssrc, // can never send audio ssrc as 0, it will mess up client state for some reason
|
||||
this.webRtcClient!.getIncomingStreamSSRCs().audio_ssrc,
|
||||
video_ssrc: ssrcs.video_ssrc ?? 0,
|
||||
rtx_ssrc: ssrcs.rtx_ssrc ?? 0,
|
||||
streams: d.streams?.map((x) => ({
|
||||
@ -162,9 +163,6 @@ export async function subscribeToProducers(
|
||||
|
||||
if (client.user_id === this.user_id) return Promise.resolve(); // cannot subscribe to self
|
||||
|
||||
if (!client.isProducingAudio() && !client.isProducingVideo)
|
||||
return Promise.resolve();
|
||||
|
||||
if (
|
||||
client.isProducingAudio() &&
|
||||
!this.webRtcClient!.isSubscribedToTrack(client.user_id, "audio")
|
||||
@ -191,9 +189,10 @@ export async function subscribeToProducers(
|
||||
op: VoiceOPCodes.VIDEO,
|
||||
d: {
|
||||
user_id: client.user_id,
|
||||
// can never send audio ssrc as 0, it will mess up client state for some reason. send server generated ssrc as backup
|
||||
audio_ssrc:
|
||||
ssrcs.audio_ssrc ??
|
||||
client.getIncomingStreamSSRCs().audio_ssrc, // can never send audio ssrc as 0, it will mess up client state for some reason
|
||||
client.getIncomingStreamSSRCs().audio_ssrc,
|
||||
video_ssrc: ssrcs.video_ssrc ?? 0,
|
||||
rtx_ssrc: ssrcs.rtx_ssrc ?? 0,
|
||||
streams: [
|
||||
|
Loading…
x
Reference in New Issue
Block a user