本文整理汇总了C#中ConnectionManager.GetConnectionCore方法的典型用法代码示例。如果您正苦于以下问题:C# ConnectionManager.GetConnectionCore方法的具体用法?C# ConnectionManager.GetConnectionCore怎么用?C# ConnectionManager.GetConnectionCore使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConnectionManager
的用法示例。
在下文中一共展示了ConnectionManager.GetConnectionCore方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FailedWriteCompletesRequestAfterDisconnectTimeout
public void FailedWriteCompletesRequestAfterDisconnectTimeout()
{
var request = new Mock<IRequest>();
var response = new Mock<IResponse>();
var qs = new NameValueCollection();
request.Setup(m => m.QueryString).Returns(new NameValueCollectionWrapper(qs));
var url = new Uri("http://test/echo/connect");
request.Setup(m => m.Url).Returns(url);
request.Setup(m => m.LocalPath).Returns(url.LocalPath);
var cts = new CancellationTokenSource();
response.Setup(m => m.CancellationToken).Returns(cts.Token);
response.Setup(m => m.Flush()).Returns(TaskAsyncHelper.Empty);
var resolver = new DefaultDependencyResolver();
var config = resolver.Resolve<IConfigurationManager>();
var hostContext = new HostContext(request.Object, response.Object);
config.DisconnectTimeout = TimeSpan.FromSeconds(6);
var transport = new Mock<ForeverTransport>(hostContext, resolver)
{
CallBase = true
};
transport.Object.ConnectionId = "1";
transport.Setup(m => m.Send(It.IsAny<PersistentResponse>()))
.Returns(() =>
{
var task = TaskAsyncHelper.FromError(new Exception());
cts.Cancel();
return task;
});
var connectionManager = new ConnectionManager(resolver);
var connection = connectionManager.GetConnectionCore("Foo");
var wh = new ManualResetEventSlim();
transport.Object.ProcessRequest(connection).ContinueWith(task =>
{
wh.Set();
});
connection.Broadcast("Some message");
// 6 second disconnect timeout + 5 second disconnect threshold
// + up to 1 second for the heartbeat to check + 3 second leeway
Assert.True(wh.Wait(TimeSpan.FromSeconds(15)));
}