Start() public method

public Start ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task
Esempio n. 1
0
        public static async Task <SignalRClient> CreateAndStart(string url)
        {
            var client = new SignalRClient(url);
            await client.Start();

            return(client);
        }
        public App()
        {
            //show an error if the connection doesn't succeed for some reason
            SignalRClient.Start().ContinueWith(task => {
                if (task.IsFaulted)
                {
                    MainPage.DisplayAlert("Error", "An error occurred when trying to connect to SignalR: " + task.Exception.InnerExceptions[0].Message, "OK");
                }
            });


            //try to reconnect every 10 seconds, just in case
            Device.StartTimer(TimeSpan.FromSeconds(10), () => {
                if (!SignalRClient.IsConnectedOrConnecting)
                {
                    SignalRClient.Start();
                }

                return(true);
            });

            var usernameStack   = new UsernameStackLayout();
            var sendMessage     = new SendMessageStackLayout();
            var listView        = new ChatListViewStackLayout();
            var connectionLabel = new Label {
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                BindingContext    = SignalRClient
            };

            connectionLabel.SetBinding(Label.TextProperty, "ConnectionState");

            // The root page of your application
            MainPage = new ContentPage
            {
                Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5),
                Content = new StackLayout
                {
                    Children =
                    {
                        new Label {
                            FontSize          = 12.0,
                            HorizontalOptions = LayoutOptions.CenterAndExpand,
                            Text = "SignalR + Xamarin!"
                        },
                        usernameStack,
                        sendMessage,
                        listView,
                        connectionLabel
                    }
                }
            };

            sendMessage.MessageSent += (message) => {
                listView.AddText("Me: " + message);
                SignalRClient.SendMessage(usernameStack.UsernameTextbox.Text, message);
            };

            SignalRClient.OnMessageReceived += (username, message) => {
                listView.AddText(username + ": " + message);
            };
        }
		public static async Task<SignalRClient> CreateAndStart(string url)
		{
			var client = new SignalRClient(url);
			await client.Start();
			return client;
		}