示例#1
0
        Event Event()
        {
            var senderId = Id + "##" + HubGateway.LocalAddress();
            var eventId  = DateTime.Now.Ticks ^ Id.GetHashCode();

            return(new Event(senderId, eventId, DateTime.Now));
        }
示例#2
0
        protected override Task OnActivate()
        {
            hub = HubGateway.GetLocalHub();

            timers.Register("flush", flushPeriod, flushPeriod, Flush);

            return(base.OnActivate());
        }
示例#3
0
        public void On(Publish x)
        {
            var notifications = x.Events
                                .Select(e => new Notification(e, DateTime.Now, HubGateway.LocalHubId()))
                                .ToArray();

            observers.Notify(notifications);
        }
示例#4
0
        protected override Task OnActivate()
        {
            timers.Register("pub-pub",
                            TimeSpan.FromSeconds(1),
                            TimeSpan.FromSeconds(rand.Next(3, 10)),
                            () => HubGateway.Publish(Event()));

            return(base.OnActivate());
        }
示例#5
0
        protected override void Define()
        {
            On((InitHub x) => {});

            On((Subscribe x) => observers.Add(x.Observer));

            On((PublishEvents x) =>
            {
                var notifications = x.Events
                                    .Select(e => new Notification(e, DateTime.Now, HubGateway.LocalHubId()))
                                    .ToArray();

                observers.Notify(notifications);
            });
        }