-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed issues that prevented SignalR from working correctly.
Still somewhat unstable though. Release pre2.
- Loading branch information
Showing
23 changed files
with
2,382 additions
and
117 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
using Gate.Adapters.AspNet.IntegrationTests.Internal; | ||
using Microsoft.AspNet.SignalR.Client.Hubs; | ||
using Xunit; | ||
|
||
namespace Gate.Adapters.AspNet.IntegrationTests { | ||
public class SignalRTests : IDisposable { | ||
private readonly HubConnection _connection; | ||
private readonly IHubProxy _hub; | ||
|
||
public SignalRTests() { | ||
_connection = new HubConnection(TestHost.Url.ToString()); | ||
_hub = _connection.CreateHubProxy("TestHub"); | ||
_connection.Start().Wait(); | ||
} | ||
|
||
[Fact] | ||
public async Task String_Roundtrip() { | ||
var result = await _hub.Invoke<string>("Roundtrip", "ABCDEF"); | ||
Assert.Equal("ABCDEF", result); | ||
} | ||
|
||
public void Dispose() { | ||
this._connection.Stop(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
|
||
namespace Gate.Adapters.AspNet.Integration { | ||
[Serializable] | ||
public class CrossAppDomainAddressAndPort { | ||
public CrossAppDomainAddressAndPort(string address, int port) { | ||
Address = address; | ||
Port = port; | ||
} | ||
|
||
public string Address { get; private set; } | ||
public int Port { get; private set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using System.Linq; | ||
|
||
namespace Gate.Adapters.AspNet.Integration { | ||
public class CrossAppDomainDataConverter { | ||
public CrossAppDomainRequestData CreateRequestData(IDictionary<string, object> environment) { | ||
var request = new Request(environment); | ||
|
||
var rawUrl = request.Path + "?" + request.QueryString; | ||
var headers = request.Headers.ToDictionary(h => h.Key, h => string.Join(",", h.Value)); | ||
var body = new MemoryStream(); | ||
request.Body.CopyTo(body); | ||
|
||
return new CrossAppDomainRequestData(request.Version, | ||
request.Method, | ||
new CrossAppDomainAddressAndPort(request.Host, request.Port), | ||
GetRemoteAddressAndPort(request), | ||
rawUrl, | ||
request.Path, | ||
request.QueryString, | ||
headers, | ||
body.ToArray()); | ||
} | ||
|
||
private static CrossAppDomainAddressAndPort GetRemoteAddressAndPort(Request request) { | ||
var address = request.Get<string>("server.RemoteIpAddress") ?? "0.0.0.0"; | ||
var portString = request.Get<string>("server.RemotePort"); | ||
var port = !string.IsNullOrEmpty(portString) ? int.Parse(portString) : 0; | ||
return new CrossAppDomainAddressAndPort(address, port); | ||
} | ||
|
||
public void UpdateWithResponseData(IDictionary<string, object> environment, CrossAppDomainResponseData responseData) { | ||
var response = new Response(environment); | ||
response.StatusCode = responseData.StatusCode; | ||
response.ReasonPhrase = responseData.StatusDescription; | ||
|
||
foreach (var pair in responseData.Headers) { | ||
response.Headers.Add(pair.Key, new[] { pair.Value }); | ||
} | ||
|
||
foreach (var data in responseData.Body) { | ||
response.Write(data.Item1, 0, data.Item2); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Collections.ObjectModel; | ||
using System.Linq; | ||
|
||
namespace Gate.Adapters.AspNet.Integration { | ||
[Serializable] | ||
public class CrossAppDomainRequestData { | ||
public CrossAppDomainRequestData(string httpVersion, | ||
string httpVerbName, | ||
CrossAppDomainAddressAndPort local, | ||
CrossAppDomainAddressAndPort remote, | ||
string rawUrl, | ||
string uriPath, | ||
string queryString, | ||
IDictionary<string, string> headers, | ||
byte[] body) | ||
{ | ||
HttpVersion = httpVersion; | ||
HttpVerbName = httpVerbName; | ||
Local = Argument.NotNull("local", local); | ||
Remote = Argument.NotNull("remote", remote); | ||
RawUrl = rawUrl; | ||
UriPath = uriPath; | ||
QueryString = queryString; | ||
Headers = new ReadOnlyDictionary<string, string>(Argument.NotNull("headers", headers)); | ||
Body = body; | ||
} | ||
public string RawUrl { get; private set; } | ||
public string UriPath { get; private set; } | ||
public string QueryString { get; private set; } | ||
public string HttpVerbName { get; private set; } | ||
public CrossAppDomainAddressAndPort Local { get; private set; } | ||
public CrossAppDomainAddressAndPort Remote { get; private set; } | ||
public string HttpVersion { get; private set; } | ||
public IReadOnlyDictionary<string, string> Headers { get; private set; } | ||
public byte[] Body { get; private set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.