Skip to content

Commit

Permalink
Merge branch 'dev' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
vicancy authored Aug 29, 2022
2 parents 88f6668 + bcd1b09 commit 839f2e3
Show file tree
Hide file tree
Showing 62 changed files with 15,444 additions and 20,304 deletions.
1,555 changes: 1,555 additions & 0 deletions docs/swagger/V20220601.json

Large diffs are not rendered by default.

32 changes: 14 additions & 18 deletions samples/ChatSample/ChatSample.CSharpClient/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,17 @@ static async Task Main(string[] args)
input = Console.ReadLine();
}
}

private static async Task<HubConnection> ConnectAsync(string url, TextWriter output, CancellationToken cancellationToken = default)
{
var connection = new HubConnectionBuilder()
.WithUrl(url)
.AddMessagePackProtocol().Build();
.AddMessagePackProtocol()
.WithAutomaticReconnect(new AlwaysRetryPolicy())
.Build();

connection.On<string, string>("BroadcastMessage", BroadcastMessage);
connection.On<string>("Echo", Echo);

connection.Closed += async (e) =>
{
output.WriteLine(e);
await DelayRandom(200, 1000);
await StartAsyncWithRetry(connection, output, cancellationToken);
};

await StartAsyncWithRetry(connection, output, cancellationToken);

return connection;
Expand All @@ -75,20 +69,22 @@ private static async Task StartAsyncWithRetry(HubConnection connection, TextWrit
catch (Exception e)
{
output.WriteLine($"Error starting: {e.Message}, retry...");
await DelayRandom(200, 1000);
await Task.Delay(GetRandomDelayMilliseconds());
}
}
}

/// <summary>
/// Delay random milliseconds
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <returns></returns>
private static Task DelayRandom(int min, int max)
private sealed class AlwaysRetryPolicy : IRetryPolicy
{
public TimeSpan? NextRetryDelay(RetryContext retryContext)
{
return TimeSpan.FromMilliseconds(GetRandomDelayMilliseconds());
}
}

private static int GetRandomDelayMilliseconds()
{
return Task.Delay(StaticRandom.Next(min, max));
return StaticRandom.Next(1000, 2000);
}

private static void BroadcastMessage(string name, string message)
Expand Down
31 changes: 31 additions & 0 deletions samples/ChatSample/ChatSample.Net50/libman.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"version": "1.0",
"defaultProvider": "unpkg",
"libraries": [
{
"library": "@microsoft/signalr@5.0.17",
"destination": "wwwroot/js/signalr/",
"files": [
"dist/browser/signalr.js",
"dist/browser/signalr.min.js"
]
},
{
"library": "@microsoft/signalr-protocol-msgpack@5.0.17",
"destination": "wwwroot/js/signalr-protocol-msgpack/",
"files": [
"package.json",
"dist/browser/signalr-protocol-msgpack.js",
"dist/browser/signalr-protocol-msgpack.min.js"
]
},
{
"library": "msgpack5@6.0.1",
"destination": "wwwroot/js/msgpack5/",
"files": [
"dist/msgpack5.js",
"dist/msgpack5.min.js"
]
}
]
}
46 changes: 30 additions & 16 deletions samples/ChatSample/ChatSample.Net50/wwwroot/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,15 @@ <h2 class="text-center" style="margin-top: 0; padding-top: 30px; padding-bottom:
</div>
</div>
</div>
<!--Script references. -->
<script type="text/javascript" src="scripts/jquery-1.10.2.js"></script>
<script type="text/javascript" src="scripts/bootstrap.js"></script>

<!--Reference the SignalR library. -->
<script type="text/javascript" src="scripts/msgpack5.js"></script>
<script type="text/javascript" src="scripts/signalr.js"></script>
<script type="text/javascript" src="scripts/signalr-protocol-msgpack.js"></script>
<script type="text/javascript" src="js/signalr/dist/browser/signalr.js"></script>
<script type="text/javascript" src="js/msgpack5/dist/msgpack5.js"></script>
<script type="text/javascript" src="js/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js"></script>

<!--Add script to update the page and send messages.-->
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
document.addEventListener('DOMContentLoaded', async function () {

function generateRandomName() {
return Math.random().toString(36).substring(2, 10);
Expand Down Expand Up @@ -162,28 +159,45 @@ <h2 class="text-center" style="margin-top: 0; padding-top: 30px; padding-bottom:
modal.style = 'display: block;';
}

function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
function getRandomDelay() {
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
return getRandom(1000, 2000);
}

var connection = new signalR.HubConnectionBuilder()
.withUrl('/chat')
.withAutomaticReconnect({
nextRetryDelayInMilliseconds: function (retryContext) {
return getRandom(2000, 5000); // always retry
return getRandomDelay();
}
})
.withHubProtocol(new signalR.protocols.msgpack.MessagePackHubProtocol())
.build();

bindConnectionMessage(connection);
connection.start()
.then(function () {
onConnected(connection);
})
.catch(function (error) {
console.warn(error);

function delay(time) {
return new Promise((resolve) => {
setTimeout(() => resolve(), time);
});
}

let count = 0;
do {
try {
count++;
console.log(`Attempt ${count}`);
await connection.start();
break;
} catch (err) {
await delay(getRandomDelay());
console.warn("Error: " + err);
}
} while (true);

onConnected(connection);
});
</script>
</body>
Expand Down
Loading

0 comments on commit 839f2e3

Please sign in to comment.