aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Transport
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-01-15 21:13:45 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-01-15 21:13:45 +0200
commit8d1933f305e8fb4aa4cc7633fa02c419d77766ff (patch)
tree780c92eda81022afe1dca6838416ab44480776bf /Software/Visual_Studio/Tango.Transport
parent7b5a8bd0e4dbe8f1955a06c720380760ccb67ebd (diff)
downloadTango-8d1933f305e8fb4aa4cc7633fa02c419d77766ff.tar.gz
Tango-8d1933f305e8fb4aa4cc7633fa02c419d77766ff.zip
External bridge improvements.
Diffstat (limited to 'Software/Visual_Studio/Tango.Transport')
-rw-r--r--Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs39
1 files changed, 31 insertions, 8 deletions
diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs b/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs
index 6e1f60232..2324e140c 100644
--- a/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs
+++ b/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs
@@ -96,18 +96,34 @@ namespace Tango.Transport.Adapters
{
if (State != TransportComponentState.Connected)
{
+ bool completed = false;
+
TaskCompletionSource<object> completionSource = new TaskCompletionSource<object>();
_connection = new HubConnection(Address);
_proxy = _connection.CreateHubProxy(Hub);
+ Core.Threading.TimeoutTask.StartNew(() =>
+ {
+ if (!completed)
+ {
+ completed = true;
+ completionSource.SetException(new TimeoutException("Could not connect the SignalR adapter."));
+ }
+
+ }, TimeSpan.FromSeconds(5));
+
if (Mode == SignalRTransportAdapterMode.CreateSession)
{
_proxy.On("SessionCreated", () =>
{
- State = TransportComponentState.Connected;
- _pushThread.Start();
- completionSource.SetResult(true);
+ if (!completed)
+ {
+ completed = true;
+ State = TransportComponentState.Connected;
+ _pushThread.Start();
+ completionSource.SetResult(true);
+ }
});
}
@@ -126,9 +142,13 @@ namespace Tango.Transport.Adapters
if (Mode == SignalRTransportAdapterMode.JoinSession)
{
- State = TransportComponentState.Connected;
- _pushThread.Start();
- completionSource.SetResult(true);
+ if (!completed)
+ {
+ completed = true;
+ State = TransportComponentState.Connected;
+ _pushThread.Start();
+ completionSource.SetResult(true);
+ }
}
}
};
@@ -153,8 +173,11 @@ namespace Tango.Transport.Adapters
{
return Task.Factory.StartNew(() =>
{
- _connection.Stop();
- _connection.Dispose();
+ Core.Threading.TimeoutTask.StartNew(() =>
+ {
+ _connection.Stop();
+ _connection.Dispose();
+ },TimeSpan.FromSeconds(5));
State = TransportComponentState.Disconnected;
});
}