Advertisement
GlobalLiquidity

Untitled

Mar 18th, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import * as Ably from 'ably';
  2.  
  3. import { IMessageBusMessage, IMessageBus } from '../3d/interfaces';
  4. import { MessageBusManager } from './messagebusmanager';
  5. import { MessageBusMessage } from './messagebusmessage';
  6.  
  7. export class AblyMessageBusManager extends MessageBusManager
  8. {
  9.     Client:Ably.Realtime;
  10.     Channel:Ably.Types.RealtimeChannelCallbacks;
  11.    
  12.     connect(apikey: string)
  13.     {
  14.         console.log('connecting to ably');
  15.         let options : Ably.Types.ClientOptions = { key: apikey, clientId: 'client' };
  16.         this.Client = new Ably.Realtime(options); /* inferred type Ably.Realtime */
  17.  
  18.         let msg = new MessageBusMessage("testName","testData");
  19.         this.MessageQueue.enqueue(msg);            
  20.     }
  21.    
  22.     joinChannel(channelName: string)
  23.     {
  24.         console.log('joining channel:  ' + channelName)
  25.         this.Channel = this.Client.channels.get(channelName); /* inferred type Ably.Types.RealtimeChannel */
  26.         this.Channel.subscribe(function(message)
  27.         {
  28.             console.log('got msg:  ' + message.name + " : " + message.data);
  29.             let msg = new MessageBusMessage(message.name,message.data);
  30.            
  31.             //this.MessageQueue.enqueue(msg);            
  32.         });    
  33.     }
  34.  
  35.     sendMessage(topic: string, message: string)
  36.     {
  37.         if (this.Channel != null)
  38.         {
  39.             this.Channel.publish(topic,message, function(err) {
  40.                 if(err) {
  41.                   throw new ErrorEvent('publish failed with error ' + err);
  42.                 } else {
  43.                   console.log('publish succeeded');
  44.                 }
  45.               })
  46.         }
  47.  
  48.         throw new Error("Method not implemented.");
  49.     }
  50.    
  51.     enqueueMessage(topic:string, message:string)
  52.     {
  53.         let msg = new MessageBusMessage(topic,message);
  54.         this.MessageQueue.enqueue(msg);
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement