Generate ID function passed in options object. Updated tests.
This commit is contained in:
parent
5ad788c419
commit
2eb7f9cfb1
@ -3,7 +3,7 @@ const cors = require('cors');
|
||||
const bodyParser = require('body-parser');
|
||||
const publicContent = require('../../app.json');
|
||||
|
||||
module.exports = ({ config, realm, messageHandler, randomId }) => {
|
||||
module.exports = ({ config, realm, messageHandler }) => {
|
||||
const authMiddleware = require('./middleware/auth')({ config, realm });
|
||||
|
||||
const app = express.Router();
|
||||
@ -16,7 +16,7 @@ module.exports = ({ config, realm, messageHandler, randomId }) => {
|
||||
res.send(publicContent);
|
||||
});
|
||||
|
||||
app.use('/:key', require('./v1/public')({ config, realm, randomId }));
|
||||
app.use('/:key', require('./v1/public')({ config, realm }));
|
||||
app.use('/:key/:id/:token', authMiddleware, jsonParser, require('./v1/calls')({ realm, messageHandler }));
|
||||
|
||||
return app;
|
||||
|
@ -1,12 +1,14 @@
|
||||
const express = require('express');
|
||||
|
||||
module.exports = ({ config, realm, randomId }) => {
|
||||
module.exports = ({ config, realm }) => {
|
||||
const app = express.Router();
|
||||
|
||||
// Retrieve guaranteed random ID.
|
||||
app.get('/id', (req, res) => {
|
||||
res.contentType = 'text/html';
|
||||
res.send(realm.generateClientId(randomId));
|
||||
res.send(realm.generateClientId(
|
||||
config.genRandomId ? config.genRandomId : undefined
|
||||
));
|
||||
});
|
||||
|
||||
// Get a list of all peers for a key, enabled by the `allowDiscovery` flag.
|
||||
|
12
src/index.js
12
src/index.js
@ -6,11 +6,11 @@ const defaultConfig = require('../config');
|
||||
const WebSocketServer = require('./services/webSocketServer');
|
||||
const Realm = require('./models/realm');
|
||||
|
||||
const init = ({ app, server, options, randomId }) => {
|
||||
const init = ({ app, server, options }) => {
|
||||
const config = options;
|
||||
const realm = new Realm();
|
||||
const messageHandler = require('./messageHandler')({ realm });
|
||||
const api = require('./api')({ config, realm, messageHandler, randomId });
|
||||
const api = require('./api')({ config, realm, messageHandler });
|
||||
|
||||
const { startMessagesExpiration } = require('./services/messagesExpire')({ realm, config, messageHandler });
|
||||
const checkBrokenConnections = require('./services/checkBrokenConnections')({
|
||||
@ -62,7 +62,7 @@ const init = ({ app, server, options, randomId }) => {
|
||||
checkBrokenConnections.start();
|
||||
};
|
||||
|
||||
function ExpressPeerServer(server, options, randomId) {
|
||||
function ExpressPeerServer(server, options) {
|
||||
const app = express();
|
||||
|
||||
options = {
|
||||
@ -80,13 +80,13 @@ function ExpressPeerServer(server, options, randomId) {
|
||||
'can\'t start PeerServer');
|
||||
}
|
||||
|
||||
init({ app, server, options, randomId });
|
||||
init({ app, server, options });
|
||||
});
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
function PeerServer(options = {}, callback, randomId) {
|
||||
function PeerServer(options = {}, callback) {
|
||||
const app = express();
|
||||
|
||||
options = {
|
||||
@ -114,7 +114,7 @@ function PeerServer(options = {}, callback, randomId) {
|
||||
server = http.createServer(app);
|
||||
}
|
||||
|
||||
const peerjs = ExpressPeerServer(server, options, randomId);
|
||||
const peerjs = ExpressPeerServer(server, options);
|
||||
app.use(peerjs);
|
||||
|
||||
if (callback) {
|
||||
|
@ -42,19 +42,19 @@ class Realm {
|
||||
this._messageQueues.delete(id);
|
||||
}
|
||||
|
||||
generateClientId (_randomId) {
|
||||
const originalRandomId = () => {
|
||||
generateClientId (_genRandomId) {
|
||||
const originalGenRandomId = () => {
|
||||
return (Math.random().toString(36) + '0000000000000000000').substr(2, 16);
|
||||
}
|
||||
|
||||
const randomId = typeof _randomId === 'function' ?
|
||||
() => _randomId :
|
||||
() => originalRandomId;
|
||||
const genRandomId = _genRandomId && typeof _genRandomId === 'function' ?
|
||||
() => _genRandomId :
|
||||
() => originalGenRandomId;
|
||||
|
||||
let clientId = randomId(randomId)();
|
||||
let clientId = genRandomId();
|
||||
|
||||
while (this.getClientById(clientId)) {
|
||||
clientId = randomId();
|
||||
clientId = genRandomId();
|
||||
}
|
||||
|
||||
return clientId;
|
||||
|
@ -7,6 +7,7 @@ describe('Realm', () => {
|
||||
it('should generate a 16-character ID', () => {
|
||||
const realm = new Realm();
|
||||
expect(realm.generateClientId().length).to.eq(16);
|
||||
expect(realm.generateClientId(() => 'abcd').to.eq('abcd');
|
||||
});
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user