diff --git a/test/test.ts b/test/test.ts index 922299e..2de06ff 100644 --- a/test/test.ts +++ b/test/test.ts @@ -69,9 +69,22 @@ tap.test('a second client should be able to subscibe', async () => { }); testClientUniverse2.addChannel(testChannelData.channelName, testChannelData.channelPass); + await testClientUniverse2.start(); }); -tap.test('should receive a message correctly', async () => {}); +tap.test('should receive a message correctly', async (tools) => { + const done = tools.defer(); + const testChannel = testClientUniverse.getChannel(testChannelData.channelName); + const testChannel2 = testClientUniverse2.getChannel(testChannelData.channelName); + const subscription = await testChannel2.subscribe(messageArg => { + console.log('Yay##########'); + done.resolve(); + }); + await testChannel.sendMessage({ + messageText: 'hellothere' + }); + await done.promise; +}); tap.test('should disconnect the client correctly', async () => { await testClientUniverse.stop(); diff --git a/ts/interfaces/universeactions.interfaces.ts b/ts/interfaces/universeactions.interfaces.ts index ff37203..5a24788 100644 --- a/ts/interfaces/universeactions.interfaces.ts +++ b/ts/interfaces/universeactions.interfaces.ts @@ -1,9 +1,3 @@ -export type IServerCallActions = - | 'channelSubscription' - | 'processMessage' - | 'channelUnsubscribe' - | 'terminateConnection'; - export interface IServerUnsubscribeActionPayload { name: string; } diff --git a/ts/smartuniverse.classes.clientuniversechannel.ts b/ts/smartuniverse.classes.clientuniversechannel.ts index 5548fd1..9b71182 100644 --- a/ts/smartuniverse.classes.clientuniversechannel.ts +++ b/ts/smartuniverse.classes.clientuniversechannel.ts @@ -53,7 +53,7 @@ export class ClientUniverseChannel implements interfaces.IUniverseChannel { * subscribes to a channel * tells the universe about this instances interest into a channel */ - public async subscribe(observerArg?: plugins.smartrx.rxjs.Observer) { + public async subscribe(observingFunctionArg?: (messageArg: ClientUniverseMessage) => void) { // lets make sure the channel is connected if (this.status === 'unsubscribed') { const response = await this.clientUniverseRef.smartsocketClient.serverCall< @@ -65,8 +65,10 @@ export class ClientUniverseChannel implements interfaces.IUniverseChannel { this.status = response.subscriptionStatus; } - if (observerArg) { - return this.subject.subscribe(observerArg); + if (observingFunctionArg) { + return this.subject.subscribe(messageArg => { + observingFunctionArg(messageArg); + },error => console.log); } } diff --git a/ts/smartuniverse.classes.reactionresponse.ts b/ts/smartuniverse.classes.reactionresponse.ts index 26ac86d..02154b4 100644 --- a/ts/smartuniverse.classes.reactionresponse.ts +++ b/ts/smartuniverse.classes.reactionresponse.ts @@ -1,3 +1,5 @@ import * as plugins from './smartuniverse.plugins'; -export class ReactionResponse {} +export class ReactionResponse { + +} diff --git a/ts/smartuniverse.classes.universechannel.ts b/ts/smartuniverse.classes.universechannel.ts index b15489f..43c7993 100644 --- a/ts/smartuniverse.classes.universechannel.ts +++ b/ts/smartuniverse.classes.universechannel.ts @@ -117,7 +117,7 @@ export class UniverseChannel { public async push(messageArg: UniverseMessage) { this.subject.next(messageArg); const universeConnectionsWithChannelAccess: UniverseConnection[] = []; - this.universeRef.universeCache.connectionMap.forEach(async socketConnection => { + await this.universeRef.universeCache.connectionMap.forEach(async socketConnection => { if (socketConnection.authenticatedChannels.includes(this)) { universeConnectionsWithChannelAccess.push(socketConnection); } diff --git a/ts/smartuniverse.classes.universeconnection.ts b/ts/smartuniverse.classes.universeconnection.ts index d693b57..1215364 100644 --- a/ts/smartuniverse.classes.universeconnection.ts +++ b/ts/smartuniverse.classes.universeconnection.ts @@ -26,6 +26,7 @@ export class UniverseConnection { universeConnection ); universeRef.universeCache.connectionMap.add(universeConnection); + console.log('hi') } /**