Example #1
0
        public static void Start()
        {
            ThreadPool.QueueUserWorkItem(_ =>
            {
                IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <SampleHub>();

                while (true)
                {
                    FromServerToClientData data = new FromServerToClientData();
                    data.Now     = DateTime.Now;
                    data.Integer = _random.Next(100);
                    data.Text    = new string('a', data.Integer);

                    try
                    {
                        hubContext.Clients.All.Broadcast(data);
                        hubContext.Clients.Group("WebApp").BroadcastToGroup(string.Format("WebApp {0}", DateTime.Now));
                        hubContext.Clients.Group("ConsoleApp").BroadcastToGroup(string.Format("ConsoleApp {0}", DateTime.Now));
                        hubContext.Clients.Group("SilverlightApp").BroadcastToGroup(string.Format("SilverlightApp {0}", DateTime.Now));
                        hubContext.Clients.Group("WindowsStoreApp").BroadcastToGroup(string.Format("WindowsStoreApp {0}", DateTime.Now));
                    }
                    catch (Exception ex)
                    {
                        System.Diagnostics.Trace.TraceError("SignalR error thrown: {0}", ex);
                    }
                    Thread.Sleep(TimeSpan.FromSeconds(2));
                }
            });
        }
        public FromServerToClientData Request(FromClientToServerData request)
        {
            FromServerToClientData response = new FromServerToClientData();

            response.Text = "Responding to: " + request.Text;

            return(response);
        }
        public async Task RequestWithCallbackAsync(FromClientToServerData request)
        {
            FromServerToClientData response = new FromServerToClientData();

            response.Text = "Responding to: " + request.Text;

            await Task.Delay(TimeSpan.FromSeconds(5));

            Clients.Others.OthersCallback(response);
        }
        public async Task <FromServerToClientData> RequestAsync(FromClientToServerData request)
        {
            FromServerToClientData response = new FromServerToClientData();

            response.Text = "Responding to: " + request.Text;

            await Task.Delay(TimeSpan.FromSeconds(5));

            return(response);
        }