Skip to content

Commit

Permalink
refactor: make services/mediasoup folder
Browse files Browse the repository at this point in the history
  • Loading branch information
woody146 committed Jun 9, 2023
1 parent 38d3a72 commit 2dc1e6d
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 20 deletions.
4 changes: 2 additions & 2 deletions src/apis/master/room.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { MediasoupRoomService } from '../../services/index.js';
import { RoomService } from '../../services/index.js';
import { RouteConfig, getDataSource } from '../../utils/index.js';

export const room: Array<RouteConfig> = [
{
method: 'POST',
url: '/rooms',
handler: () => {
return new MediasoupRoomService(getDataSource()).create({});
return new RoomService(getDataSource()).create({});
},
},
];
12 changes: 11 additions & 1 deletion src/apis/slave/router.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { mediasoupRouterManager } from '../../services/index.js';
import {
mediasoupRouterManager,
mediasoupWebRTCTransportManager,
} from '../../services/index.js';
import { RouteConfig } from '../../utils/index.js';

export const router: Array<RouteConfig> = [
Expand All @@ -9,4 +12,11 @@ export const router: Array<RouteConfig> = [
return mediasoupRouterManager.create();
},
},
{
method: 'POST',
url: '/routers/:routerId/transports',
handler: (data) => {
return mediasoupWebRTCTransportManager.create(data.routerId);
},
},
];
7 changes: 3 additions & 4 deletions src/services/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
export * from './mediasoup.slave.js';
export * from './mediasoup.room.js';
export * from './mediasoup.worker.js';
export * from './mediasoup.router.js';
export * from './slave.js';
export * from './room.js';
export * from './mediasoup/index.js';
3 changes: 3 additions & 0 deletions src/services/mediasoup/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from './worker.js';
export * from './router.js';
export * from './webrtc.transport.js';
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { types } from 'mediasoup';
import { mediasoupWorkerManager } from './mediasoup.worker.js';
import { mediasoupWorkerManager } from './worker.js';

class MediasoupRouterManager {
static routers: Array<types.Router> = [];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { types } from 'mediasoup';
import { ServiceError } from './base.js';
import { mediasoupRouterManager } from './mediasoup.router.js';
import { ServiceError } from '../base.js';
import { mediasoupRouterManager } from './router.js';

class WebRTCTransportManager {
class MediasoupWebRTCTransportManager {
static transports: Array<types.Transport> = [];

async create(routerId: string) {
Expand Down Expand Up @@ -31,7 +31,7 @@ class WebRTCTransportManager {
await transport.setMaxIncomingBitrate(maxIncomingBitrate);
} catch (error) {}
}
WebRTCTransportManager.transports.push(transport);
MediasoupWebRTCTransportManager.transports.push(transport);
return {
id: transport.id,
iceParameters: transport.iceParameters,
Expand All @@ -43,4 +43,5 @@ class WebRTCTransportManager {
}
}

export const webRTCTransportManager = new WebRTCTransportManager();
export const mediasoupWebRTCTransportManager =
new MediasoupWebRTCTransportManager();
File renamed without changes.
16 changes: 10 additions & 6 deletions src/services/mediasoup.room.ts → src/services/room.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import { MediasoupRoom } from '../entities/index.js';
import { fetchApi } from '../utils/index.js';
import { ServiceError, BaseService } from './base.js';
import { MediasoupSlaveService } from './mediasoup.slave.js';
import { SlaveService } from './slave.js';

export class MediasoupRoomService extends BaseService {
export class RoomService extends BaseService {
// for master server
async create(data: { metadata?: any }) {
const slave = await this.createService(
MediasoupSlaveService
).getForNewRoom();
const slave = await this.createService(SlaveService).getForNewRoom();
if (slave) {
const result = await fetchApi({
host: slave.externalHost,
Expand All @@ -26,11 +24,17 @@ export class MediasoupRoomService extends BaseService {
throw new ServiceError(404, 'Slave not found');
}

async get(data: { id: string }) {
return this.dataSource
.getRepository(MediasoupRoom)
.findOne({ where: { id: data.id } });
}

/**
* Remove all rooms of current slave
*/
async removeAll() {
const slave = await this.createService(MediasoupSlaveService).getCurrent();
const slave = await this.createService(SlaveService).getCurrent();
if (slave) {
await this.dataSource
.createQueryBuilder(MediasoupRoom, 'MediasoupRoom')
Expand Down
2 changes: 1 addition & 1 deletion src/services/mediasoup.slave.ts → src/services/slave.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { constants } from '../constants.js';
import { MediasoupSlave } from '../entities/index.js';
import { BaseService } from './base.js';

export class MediasoupSlaveService extends BaseService {
export class SlaveService extends BaseService {
async add(data: {
internalHost: string;
externalHost: string;
Expand Down

0 comments on commit 2dc1e6d

Please sign in to comment.