/
MemoryTestHost.cs
87 lines (74 loc) · 2.71 KB
/
MemoryTestHost.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using Microsoft.AspNet.SignalR.Hubs;
using Microsoft.AspNet.SignalR.Client.Transports;
using Microsoft.AspNet.SignalR.Hosting.Memory;
namespace Microsoft.AspNet.SignalR.FunctionalTests.Infrastructure
{
public class MemoryTestHost : ITestHost
{
private readonly MemoryHost _host;
public MemoryTestHost(MemoryHost host)
{
_host = host;
}
public string Url
{
get
{
return "http://memoryhost";
}
}
public IClientTransport Transport { get; set; }
public Func<IClientTransport> TransportFactory { get; set; }
public void Initialize(int? keepAlive,
int? connectionTimeout,
int? disconnectTimeout,
int? hearbeatInterval,
bool enableAutoRejoiningGroups)
{
if (keepAlive != null)
{
_host.Configuration.KeepAlive = TimeSpan.FromSeconds(keepAlive.Value);
}
else
{
_host.Configuration.KeepAlive = null;
}
if (connectionTimeout != null)
{
_host.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(connectionTimeout.Value);
}
if (disconnectTimeout != null)
{
_host.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(disconnectTimeout.Value);
}
if (hearbeatInterval != null)
{
_host.Configuration.HeartbeatInterval = TimeSpan.FromSeconds(hearbeatInterval.Value);
}
if (enableAutoRejoiningGroups)
{
_host.HubPipeline.EnableAutoRejoiningGroups();
}
_host.MapHubs();
_host.MapConnection<MyBadConnection>("/ErrorsAreFun");
_host.MapConnection<MyGroupEchoConnection>("/group-echo");
_host.MapConnection<MySendingConnection>("/multisend");
_host.MapConnection<MyReconnect>("/my-reconnect");
_host.MapConnection<MyGroupConnection>("/groups");
_host.MapConnection<MyRejoinGroupsConnection>("/rejoin-groups");
_host.MapConnection<FilteredConnection>("/filter");
_host.MapConnection<SyncErrorConnection>("/sync-error");
_host.MapConnection<FallbackToLongPollingConnection>("/fall-back");
_host.MapConnection<AddGroupOnConnectedConnection>("/add-group");
}
public void Dispose()
{
_host.Dispose();
}
public void Shutdown()
{
Dispose();
}
}
}