Example #1
0
        private void Trigger_Click(object sender, RoutedEventArgs e)
        {
            string eventName = this.eventBox.Text.Trim();
            string payload   = this.payloadBox.Text.Trim();

            if (this.channel == null || string.IsNullOrEmpty(eventName))
            {
                return;
            }

            channel.PublishAsync(eventName, payload);
        }
Example #2
0
        public async Task ChannelSubscribe()
        {
            var realtime = new AblyRealtime(new ClientOptions(PlaceholderKey)
            {
                AutoConnect = false
            });
            IRealtimeChannel channel = realtime.Channels.Get("test");

            // Or ...
            IRealtimeChannel channel2 = realtime.Channels.Get("shortcut");

            channel.Subscribe(message =>
            {
                var name = message.Name;
                var data = message.Data;
            });

            channel.On(args =>
            {
                var state = args.Current;    // Current channel State
                var error = args.Error;      // If the channel error-ed it will be reflected here
            });

            channel.On(ChannelEvent.Attached, args =>
            {
                // Do stuff when channel is attached
            });

            channel.Publish("greeting", "Hello World!");
            channel.Publish("greeting", "Hello World!", (success, error) =>
            {
                // If 'Publish' succeeded 'success' is 'true'
                // If 'Publish' failed 'success' is 'false' and 'error' will contain the specific error
            });

            var result = await channel.PublishAsync("greeting", "Hello World!");

            // You can check if the message failed
            if (result.IsFailure)
            {
                var error = result.Error;    // The error reason can be accessed as well
            }

            var secret           = Crypto.GenerateRandomKey();
            var encryptedChannel = realtime.Channels.Get("encrypted", new ChannelOptions(secret));

            encryptedChannel.Subscribe(message =>
            {
                var data = message.Data;    // Sensitive data (encrypted before published)
            });

            encryptedChannel.Publish("name (not encrypted)", "sensitive data (encrypted before published)");
        }