Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as Ably from 'ably';
- import { IMessageBusMessage, IMessageBus } from '../3d/interfaces';
- import { MessageBusManager } from './messagebusmanager';
- import { MessageBusMessage } from './messagebusmessage';
- export class AblyMessageBusManager extends MessageBusManager
- {
- Client:Ably.Realtime;
- Channel:Ably.Types.RealtimeChannelCallbacks;
- connect(apikey: string)
- {
- console.log('connecting to ably');
- let options : Ably.Types.ClientOptions = { key: apikey, clientId: 'client' };
- this.Client = new Ably.Realtime(options); /* inferred type Ably.Realtime */
- let msg = new MessageBusMessage("testName","testData");
- this.MessageQueue.enqueue(msg);
- }
- joinChannel(channelName: string)
- {
- console.log('joining channel: ' + channelName)
- this.Channel = this.Client.channels.get(channelName); /* inferred type Ably.Types.RealtimeChannel */
- this.Channel.subscribe(function(message)
- {
- console.log('got msg: ' + message.name + " : " + message.data);
- let msg = new MessageBusMessage(message.name,message.data);
- //this.MessageQueue.enqueue(msg);
- });
- }
- sendMessage(topic: string, message: string)
- {
- if (this.Channel != null)
- {
- this.Channel.publish(topic,message, function(err) {
- if(err) {
- throw new ErrorEvent('publish failed with error ' + err);
- } else {
- console.log('publish succeeded');
- }
- })
- }
- throw new Error("Method not implemented.");
- }
- enqueueMessage(topic:string, message:string)
- {
- let msg = new MessageBusMessage(topic,message);
- this.MessageQueue.enqueue(msg);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement