Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
97666a623d | |||
ef61ea9ad7 | |||
9c1504ef02 | |||
e8f2e04d1c | |||
e12aa7e961 | |||
857b7cd010 |
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartuniverse",
|
"name": "@pushrocks/smartuniverse",
|
||||||
"version": "1.0.62",
|
"version": "1.0.65",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartuniverse",
|
"name": "@pushrocks/smartuniverse",
|
||||||
"version": "1.0.62",
|
"version": "1.0.65",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "messaging service for your micro services",
|
"description": "messaging service for your micro services",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
@ -37,11 +37,11 @@ tap.test('create smartuniverse client', async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
tap.test('should add a channel to the universe', async () => {
|
tap.test('should add a channel to the universe', async () => {
|
||||||
await testUniverse.addChannel(testChannelData.channelName, testChannelData.channelPass);
|
testUniverse.addChannel(testChannelData.channelName, testChannelData.channelPass);
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('should add the same channel to the client universe in the same way', async () => {
|
tap.test('should add the same channel to the client universe in the same way', async () => {
|
||||||
await testClientUniverse.addChannel(testChannelData.channelName, testChannelData.channelPass);
|
testClientUniverse.addChannel(testChannelData.channelName, testChannelData.channelPass);
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('should start the ClientUniverse', async () => {
|
tap.test('should start the ClientUniverse', async () => {
|
||||||
@ -49,12 +49,12 @@ tap.test('should start the ClientUniverse', async () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
tap.test('should get a observable correctly', async () => {
|
tap.test('should get a observable correctly', async () => {
|
||||||
testClientChannel = await testClientUniverse.getChannel(testChannelData.channelName);
|
testClientChannel = testClientUniverse.getChannel(testChannelData.channelName);
|
||||||
expect(testClientChannel).to.be.instanceof(smartuniverse.ClientUniverseChannel);
|
expect(testClientChannel).to.be.instanceof(smartuniverse.ClientUniverseChannel);
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('should send a message correctly', async () => {
|
tap.test('should send a message correctly', async () => {
|
||||||
await (await testClientUniverse.getChannel(testChannelData.channelName)).sendMessage({
|
await (testClientUniverse.getChannel(testChannelData.channelName)).sendMessage({
|
||||||
messageText: 'hello'
|
messageText: 'hello'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -32,15 +32,16 @@ export class ClientUniverse {
|
|||||||
* adds a channel to the channelcache
|
* adds a channel to the channelcache
|
||||||
* TODO: verify channel before adding it to the channel cache
|
* TODO: verify channel before adding it to the channel cache
|
||||||
*/
|
*/
|
||||||
public async addChannel(channelNameArg: string, passphraseArg: string) {
|
public addChannel(channelNameArg: string, passphraseArg: string) {
|
||||||
const existingChannel = await this.getChannel(channelNameArg);
|
const existingChannel = this.getChannel(channelNameArg);
|
||||||
|
|
||||||
if (existingChannel) {
|
if (existingChannel) {
|
||||||
throw new Error('channel exists');
|
throw new Error('channel exists');
|
||||||
}
|
}
|
||||||
|
|
||||||
// lets create the channel
|
// lets create the channel
|
||||||
await ClientUniverseChannel.createClientUniverseChannel(this, channelNameArg, passphraseArg);
|
const clientUniverseChannel = ClientUniverseChannel.createClientUniverseChannel(this, channelNameArg, passphraseArg);
|
||||||
|
return clientUniverseChannel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -48,7 +49,7 @@ export class ClientUniverse {
|
|||||||
* @param channelName
|
* @param channelName
|
||||||
* @param passphraseArg
|
* @param passphraseArg
|
||||||
*/
|
*/
|
||||||
public async getChannel(channelName: string): Promise<ClientUniverseChannel> {
|
public getChannel(channelName: string): ClientUniverseChannel {
|
||||||
const clientUniverseChannel = this.clientUniverseCache.channelMap.find(channel => {
|
const clientUniverseChannel = this.clientUniverseCache.channelMap.find(channel => {
|
||||||
return channel.name === channelName;
|
return channel.name === channelName;
|
||||||
});
|
});
|
||||||
|
@ -13,11 +13,11 @@ export class ClientUniverseChannel implements interfaces.IUniverseChannel {
|
|||||||
* @param channelNameArg
|
* @param channelNameArg
|
||||||
* @param passphraseArg
|
* @param passphraseArg
|
||||||
*/
|
*/
|
||||||
public static async createClientUniverseChannel(
|
public static createClientUniverseChannel(
|
||||||
clientUniverseArg: ClientUniverse,
|
clientUniverseArg: ClientUniverse,
|
||||||
channelNameArg: string,
|
channelNameArg: string,
|
||||||
passphraseArg: string
|
passphraseArg: string
|
||||||
): Promise<ClientUniverseChannel> {
|
): ClientUniverseChannel {
|
||||||
const clientChannel = new ClientUniverseChannel(
|
const clientChannel = new ClientUniverseChannel(
|
||||||
clientUniverseArg,
|
clientUniverseArg,
|
||||||
channelNameArg,
|
channelNameArg,
|
||||||
|
@ -10,6 +10,7 @@ import { UniverseConnection } from './smartuniverse.classes.universeconnection';
|
|||||||
|
|
||||||
export interface ISmartUniverseConstructorOptions {
|
export interface ISmartUniverseConstructorOptions {
|
||||||
messageExpiryInMilliseconds: number;
|
messageExpiryInMilliseconds: number;
|
||||||
|
externalServer?: plugins.smartexpress.Server;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -59,7 +60,7 @@ export class Universe {
|
|||||||
/**
|
/**
|
||||||
* adds a channel to the Universe
|
* adds a channel to the Universe
|
||||||
*/
|
*/
|
||||||
public async addChannel(nameArg: string, passphraseArg: string) {
|
public addChannel(nameArg: string, passphraseArg: string) {
|
||||||
const newChannel = UniverseChannel.createChannel(this, nameArg, passphraseArg);
|
const newChannel = UniverseChannel.createChannel(this, nameArg, passphraseArg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,14 +69,18 @@ export class Universe {
|
|||||||
*/
|
*/
|
||||||
public async start(portArg: number) {
|
public async start(portArg: number) {
|
||||||
// lets create the base smartexpress server
|
// lets create the base smartexpress server
|
||||||
this.smartexpressServer = new plugins.smartexpress.Server({
|
if (!this.options.externalServer) {
|
||||||
cors: true,
|
this.smartexpressServer = new plugins.smartexpress.Server({
|
||||||
defaultAnswer: async () => {
|
cors: true,
|
||||||
return `smartuniverse server ${this.getUniverseVersion()}`;
|
defaultAnswer: async () => {
|
||||||
},
|
return `smartuniverse server ${this.getUniverseVersion()}`;
|
||||||
forceSsl: false,
|
},
|
||||||
port: portArg
|
forceSsl: false,
|
||||||
});
|
port: portArg
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.smartexpressServer = this.options.externalServer;
|
||||||
|
}
|
||||||
|
|
||||||
// add websocket upgrade
|
// add websocket upgrade
|
||||||
this.smartsocket = new plugins.smartsocket.Smartsocket({});
|
this.smartsocket = new plugins.smartsocket.Smartsocket({});
|
||||||
@ -148,7 +153,9 @@ export class Universe {
|
|||||||
// add smartsocket to the running smartexpress app
|
// add smartsocket to the running smartexpress app
|
||||||
this.smartsocket.setExternalServer('smartexpress', this.smartexpressServer as any);
|
this.smartsocket.setExternalServer('smartexpress', this.smartexpressServer as any);
|
||||||
// start everything
|
// start everything
|
||||||
await this.smartexpressServer.start();
|
if (!this.options.externalServer) {
|
||||||
|
await this.smartexpressServer.start();
|
||||||
|
}
|
||||||
await this.smartsocket.start();
|
await this.smartsocket.start();
|
||||||
plugins.smartlog.defaultLogger.log('success', 'started universe');
|
plugins.smartlog.defaultLogger.log('success', 'started universe');
|
||||||
}
|
}
|
||||||
@ -158,6 +165,8 @@ export class Universe {
|
|||||||
*/
|
*/
|
||||||
public async stopServer() {
|
public async stopServer() {
|
||||||
await this.smartsocket.stop();
|
await this.smartsocket.stop();
|
||||||
await this.smartexpressServer.stop();
|
if (!this.options.externalServer) {
|
||||||
|
await this.smartexpressServer.stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user