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 bodyParser = require('body-parser');
|
||||||
const publicContent = require('../../app.json');
|
const publicContent = require('../../app.json');
|
||||||
|
|
||||||
module.exports = ({ config, realm, messageHandler, randomId }) => {
|
module.exports = ({ config, realm, messageHandler }) => {
|
||||||
const authMiddleware = require('./middleware/auth')({ config, realm });
|
const authMiddleware = require('./middleware/auth')({ config, realm });
|
||||||
|
|
||||||
const app = express.Router();
|
const app = express.Router();
|
||||||
@ -16,7 +16,7 @@ module.exports = ({ config, realm, messageHandler, randomId }) => {
|
|||||||
res.send(publicContent);
|
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 }));
|
app.use('/:key/:id/:token', authMiddleware, jsonParser, require('./v1/calls')({ realm, messageHandler }));
|
||||||
|
|
||||||
return app;
|
return app;
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
|
|
||||||
module.exports = ({ config, realm, randomId }) => {
|
module.exports = ({ config, realm }) => {
|
||||||
const app = express.Router();
|
const app = express.Router();
|
||||||
|
|
||||||
// Retrieve guaranteed random ID.
|
// Retrieve guaranteed random ID.
|
||||||
app.get('/id', (req, res) => {
|
app.get('/id', (req, res) => {
|
||||||
res.contentType = 'text/html';
|
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.
|
// 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 WebSocketServer = require('./services/webSocketServer');
|
||||||
const Realm = require('./models/realm');
|
const Realm = require('./models/realm');
|
||||||
|
|
||||||
const init = ({ app, server, options, randomId }) => {
|
const init = ({ app, server, options }) => {
|
||||||
const config = options;
|
const config = options;
|
||||||
const realm = new Realm();
|
const realm = new Realm();
|
||||||
const messageHandler = require('./messageHandler')({ 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 { startMessagesExpiration } = require('./services/messagesExpire')({ realm, config, messageHandler });
|
||||||
const checkBrokenConnections = require('./services/checkBrokenConnections')({
|
const checkBrokenConnections = require('./services/checkBrokenConnections')({
|
||||||
@ -62,7 +62,7 @@ const init = ({ app, server, options, randomId }) => {
|
|||||||
checkBrokenConnections.start();
|
checkBrokenConnections.start();
|
||||||
};
|
};
|
||||||
|
|
||||||
function ExpressPeerServer(server, options, randomId) {
|
function ExpressPeerServer(server, options) {
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
@ -80,13 +80,13 @@ function ExpressPeerServer(server, options, randomId) {
|
|||||||
'can\'t start PeerServer');
|
'can\'t start PeerServer');
|
||||||
}
|
}
|
||||||
|
|
||||||
init({ app, server, options, randomId });
|
init({ app, server, options });
|
||||||
});
|
});
|
||||||
|
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
function PeerServer(options = {}, callback, randomId) {
|
function PeerServer(options = {}, callback) {
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
@ -114,7 +114,7 @@ function PeerServer(options = {}, callback, randomId) {
|
|||||||
server = http.createServer(app);
|
server = http.createServer(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
const peerjs = ExpressPeerServer(server, options, randomId);
|
const peerjs = ExpressPeerServer(server, options);
|
||||||
app.use(peerjs);
|
app.use(peerjs);
|
||||||
|
|
||||||
if (callback) {
|
if (callback) {
|
||||||
|
@ -42,19 +42,19 @@ class Realm {
|
|||||||
this._messageQueues.delete(id);
|
this._messageQueues.delete(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
generateClientId (_randomId) {
|
generateClientId (_genRandomId) {
|
||||||
const originalRandomId = () => {
|
const originalGenRandomId = () => {
|
||||||
return (Math.random().toString(36) + '0000000000000000000').substr(2, 16);
|
return (Math.random().toString(36) + '0000000000000000000').substr(2, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
const randomId = typeof _randomId === 'function' ?
|
const genRandomId = _genRandomId && typeof _genRandomId === 'function' ?
|
||||||
() => _randomId :
|
() => _genRandomId :
|
||||||
() => originalRandomId;
|
() => originalGenRandomId;
|
||||||
|
|
||||||
let clientId = randomId(randomId)();
|
let clientId = genRandomId();
|
||||||
|
|
||||||
while (this.getClientById(clientId)) {
|
while (this.getClientById(clientId)) {
|
||||||
clientId = randomId();
|
clientId = genRandomId();
|
||||||
}
|
}
|
||||||
|
|
||||||
return clientId;
|
return clientId;
|
||||||
|
@ -7,6 +7,7 @@ describe('Realm', () => {
|
|||||||
it('should generate a 16-character ID', () => {
|
it('should generate a 16-character ID', () => {
|
||||||
const realm = new Realm();
|
const realm = new Realm();
|
||||||
expect(realm.generateClientId().length).to.eq(16);
|
expect(realm.generateClientId().length).to.eq(16);
|
||||||
|
expect(realm.generateClientId(() => 'abcd').to.eq('abcd');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user