public IAsyncAction RelayAsync(RelayMessage message)
 {
     return(Task.Run(async() =>
     {
         await ServerConfirmationAsync(Confirmation.For(message)).CastToTask();
         OnRelayMessage?.Invoke(this, message);
     }).CastToAsyncAction());
 }
        protected override void EventHandler(RealtimeEvent @event)
        {
            base.EventHandler(@event);

            if (@event is RelayRealtimeEvent relayEvent)
            {
                switch (relayEvent.EventType)
                {
                case RelayRealtimeEventType.OnRelayMessage:
                    OnRelayMessageWithMetadataEvent relayMessageEvent = relayEvent as OnRelayMessageWithMetadataEvent;
                    if (OnRelayMessage != null)
                    {
                        OnRelayMessage.Invoke(relayMessageEvent.Message);
                    }
                    if (OnRelayMessageWithMetadata != null)
                    {
                        OnRelayMessageWithMetadata.Invoke(relayMessageEvent.Message, relayMessageEvent.Metadata);
                    }
                    break;
                }
            }
        }
Esempio n. 3
0
 public void Relay(RelayMessage message)
 {
     ServerConfirmation(Confirmation.For(message));
     OnRelayMessage?.Invoke(this, message);
 }