Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

Commit 07722ac

Browse files
committed
Add a configuration item to disable WebTransport support.
1 parent 23a5731 commit 07722ac

File tree

2 files changed

+34
-16
lines changed

2 files changed

+34
-16
lines changed

source/management_api/management_api.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ superserviceID = "_auto_generated_ID_" #default: ""
44
ssl = true #if use HTTPS
55
port = 3000 #default: 3000, port of server
66
numberOfProcess = 4 #default: 1
7+
enableWebTransport = false #default: false.
78

89
[cluster]
910
name = "owt-cluster"

source/management_api/resource/v1/tokensResource.js

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,21 @@ var getTokenString = function (id, token) {
6464
* The format of a token is:
6565
* {tokenId: id, host: erizoController host, signature: signature of the token};
6666
*/
67-
var generateToken = function (currentRoom, authData, origin, callback) {
67+
var generateToken = function(currentRoom, authData, origin, callback) {
68+
const databaseGenerateToken = function(token) {
69+
return new Promise((resolve, reject) => {
70+
dataAccess.token.create(token, (id) => {
71+
if (id) {
72+
resolve(id);
73+
} else {
74+
reject(new Error('Failed to get token ID.'));
75+
}
76+
});
77+
}).then(id => {
78+
return getTokenString(id, token);
79+
});
80+
};
81+
6882
var currentService = authData.service,
6983
user = authData.user,
7084
role = authData.role,
@@ -121,23 +135,26 @@ var generateToken = function (currentRoom, authData, origin, callback) {
121135
token.host += ':' + ec.port;
122136
}
123137

124-
// TODO: Schedule QUIC agent and portal parallelly.
125-
requestHandler.scheduleQuicAgent(token.code, origin, info => {
126-
if (info !== 'timeout') {
127-
let hostname = info.hostname;
128-
if (!hostname) {
129-
hostname = info.ip;
138+
if (!global.config.server.enableWebTransport){
139+
databaseGenerateToken(token).then(tokenS => {
140+
callback(tokenS);
141+
});
142+
} else {
143+
// TODO: Schedule QUIC agent and portal parallelly.
144+
requestHandler.scheduleQuicAgent(token.code, origin, info => {
145+
if (info !== 'timeout') {
146+
let hostname = info.hostname;
147+
if (!hostname) {
148+
hostname = info.ip;
149+
}
150+
// TODO: Rename "echo".
151+
token.webTransportUrl = 'quic-transport://' + hostname + ':' + info.port + '/echo';
130152
}
131-
// TODO: Rename "echo".
132-
token.webTransportUrl = 'quic-transport://' + hostname + ':' + info.port + '/echo';
133-
}
134-
dataAccess.token.create(token, function(id) {
135-
getTokenString(id, token)
136-
.then((tokenS) => {
137-
callback(tokenS);
138-
});
153+
databaseGenerateToken(token).then(tokenS => {
154+
callback(tokenS);
155+
});
139156
});
140-
});
157+
}
141158
});
142159
};
143160

0 commit comments

Comments
 (0)