Skip to content

Commit 2d73633

Browse files
committed
demo: add aspire host
1 parent aa643c1 commit 2d73633

File tree

13 files changed

+277
-49
lines changed

13 files changed

+277
-49
lines changed

IntelliTect.AspNetCore.SignalR.SqlServer.sln

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,78 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2525
.github\workflows\release.yml = .github\workflows\release.yml
2626
EndProjectSection
2727
EndProject
28+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoServer.AppHost", "demo\DemoServer.AppHost\DemoServer.AppHost.csproj", "{CBE8C773-5F08-438B-8970-278F4EF1333E}"
29+
EndProject
2830
Global
2931
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3032
Debug|Any CPU = Debug|Any CPU
33+
Debug|x64 = Debug|x64
34+
Debug|x86 = Debug|x86
3135
Release|Any CPU = Release|Any CPU
36+
Release|x64 = Release|x64
37+
Release|x86 = Release|x86
3238
EndGlobalSection
3339
GlobalSection(ProjectConfigurationPlatforms) = postSolution
3440
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3541
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
42+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Debug|x64.ActiveCfg = Debug|Any CPU
43+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Debug|x64.Build.0 = Debug|Any CPU
44+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Debug|x86.ActiveCfg = Debug|Any CPU
45+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Debug|x86.Build.0 = Debug|Any CPU
3646
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
3747
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Release|Any CPU.Build.0 = Release|Any CPU
48+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Release|x64.ActiveCfg = Release|Any CPU
49+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Release|x64.Build.0 = Release|Any CPU
50+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Release|x86.ActiveCfg = Release|Any CPU
51+
{62E576F6-E0F9-43AC-848E-97E7E93E4EF0}.Release|x86.Build.0 = Release|Any CPU
3852
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3953
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Debug|Any CPU.Build.0 = Debug|Any CPU
54+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Debug|x64.ActiveCfg = Debug|Any CPU
55+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Debug|x64.Build.0 = Debug|Any CPU
56+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Debug|x86.ActiveCfg = Debug|Any CPU
57+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Debug|x86.Build.0 = Debug|Any CPU
4058
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Release|Any CPU.ActiveCfg = Release|Any CPU
4159
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Release|Any CPU.Build.0 = Release|Any CPU
60+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Release|x64.ActiveCfg = Release|Any CPU
61+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Release|x64.Build.0 = Release|Any CPU
62+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Release|x86.ActiveCfg = Release|Any CPU
63+
{FACCC87C-37E3-4095-9997-75EE3C54CD49}.Release|x86.Build.0 = Release|Any CPU
4264
{468B17AA-5509-481D-884E-145978311BBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4365
{468B17AA-5509-481D-884E-145978311BBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
66+
{468B17AA-5509-481D-884E-145978311BBA}.Debug|x64.ActiveCfg = Debug|Any CPU
67+
{468B17AA-5509-481D-884E-145978311BBA}.Debug|x64.Build.0 = Debug|Any CPU
68+
{468B17AA-5509-481D-884E-145978311BBA}.Debug|x86.ActiveCfg = Debug|Any CPU
69+
{468B17AA-5509-481D-884E-145978311BBA}.Debug|x86.Build.0 = Debug|Any CPU
4470
{468B17AA-5509-481D-884E-145978311BBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
4571
{468B17AA-5509-481D-884E-145978311BBA}.Release|Any CPU.Build.0 = Release|Any CPU
72+
{468B17AA-5509-481D-884E-145978311BBA}.Release|x64.ActiveCfg = Release|Any CPU
73+
{468B17AA-5509-481D-884E-145978311BBA}.Release|x64.Build.0 = Release|Any CPU
74+
{468B17AA-5509-481D-884E-145978311BBA}.Release|x86.ActiveCfg = Release|Any CPU
75+
{468B17AA-5509-481D-884E-145978311BBA}.Release|x86.Build.0 = Release|Any CPU
4676
{888FC3BC-2589-4A5F-8235-5737053065A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4777
{888FC3BC-2589-4A5F-8235-5737053065A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
78+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Debug|x64.ActiveCfg = Debug|Any CPU
79+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Debug|x64.Build.0 = Debug|Any CPU
80+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Debug|x86.ActiveCfg = Debug|Any CPU
81+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Debug|x86.Build.0 = Debug|Any CPU
4882
{888FC3BC-2589-4A5F-8235-5737053065A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
4983
{888FC3BC-2589-4A5F-8235-5737053065A6}.Release|Any CPU.Build.0 = Release|Any CPU
84+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Release|x64.ActiveCfg = Release|Any CPU
85+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Release|x64.Build.0 = Release|Any CPU
86+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Release|x86.ActiveCfg = Release|Any CPU
87+
{888FC3BC-2589-4A5F-8235-5737053065A6}.Release|x86.Build.0 = Release|Any CPU
88+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
89+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Debug|Any CPU.Build.0 = Debug|Any CPU
90+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Debug|x64.ActiveCfg = Debug|Any CPU
91+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Debug|x64.Build.0 = Debug|Any CPU
92+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Debug|x86.ActiveCfg = Debug|Any CPU
93+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Debug|x86.Build.0 = Debug|Any CPU
94+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Release|Any CPU.ActiveCfg = Release|Any CPU
95+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Release|Any CPU.Build.0 = Release|Any CPU
96+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Release|x64.ActiveCfg = Release|Any CPU
97+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Release|x64.Build.0 = Release|Any CPU
98+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Release|x86.ActiveCfg = Release|Any CPU
99+
{CBE8C773-5F08-438B-8970-278F4EF1333E}.Release|x86.Build.0 = Release|Any CPU
50100
EndGlobalSection
51101
GlobalSection(SolutionProperties) = preSolution
52102
HideSolutionNode = FALSE
@@ -56,6 +106,7 @@ Global
56106
{FACCC87C-37E3-4095-9997-75EE3C54CD49} = {62241700-24B6-4D13-A183-2502D628ED43}
57107
{468B17AA-5509-481D-884E-145978311BBA} = {CA676E97-11D2-4D19-96DA-2B66392A05D5}
58108
{888FC3BC-2589-4A5F-8235-5737053065A6} = {62241700-24B6-4D13-A183-2502D628ED43}
109+
{CBE8C773-5F08-438B-8970-278F4EF1333E} = {62241700-24B6-4D13-A183-2502D628ED43}
59110
EndGlobalSection
60111
GlobalSection(ExtensibilityGlobals) = postSolution
61112
SolutionGuid = {41DEFC27-E139-4A35-989F-DA872E4B9F0A}

demo/DemoServer.AppHost/AppHost.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
var builder = DistributedApplication.CreateBuilder(args);
2+
3+
builder.AddProject<Projects.DemoServer>("demoserver")
4+
.WithExternalHttpEndpoints();
5+
6+
builder.Build().Run();
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<Sdk Name="Aspire.AppHost.Sdk" Version="9.5.0" />
4+
5+
<PropertyGroup>
6+
<OutputType>Exe</OutputType>
7+
<TargetFramework>net9.0</TargetFramework>
8+
<ImplicitUsings>enable</ImplicitUsings>
9+
<Nullable>enable</Nullable>
10+
<UserSecretsId>9587d5d1-fe59-4d28-9159-32313b3a4f87</UserSecretsId>
11+
</PropertyGroup>
12+
13+
<ItemGroup>
14+
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.5.0" />
15+
</ItemGroup>
16+
17+
<ItemGroup>
18+
<ProjectReference Include="..\DemoServer\DemoServer.csproj" />
19+
</ItemGroup>
20+
21+
</Project>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"$schema": "https://json.schemastore.org/launchsettings.json",
3+
"profiles": {
4+
"https": {
5+
"commandName": "Project",
6+
"dotnetRunMessages": true,
7+
"launchBrowser": true,
8+
"applicationUrl": "https://localhost:17244;http://localhost:15213",
9+
"environmentVariables": {
10+
"ASPNETCORE_ENVIRONMENT": "Development",
11+
"DOTNET_ENVIRONMENT": "Development",
12+
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21074",
13+
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22077"
14+
}
15+
},
16+
"http": {
17+
"commandName": "Project",
18+
"dotnetRunMessages": true,
19+
"launchBrowser": true,
20+
"applicationUrl": "http://localhost:15213",
21+
"environmentVariables": {
22+
"ASPNETCORE_ENVIRONMENT": "Development",
23+
"DOTNET_ENVIRONMENT": "Development",
24+
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19132",
25+
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20211"
26+
}
27+
}
28+
}
29+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"Logging": {
3+
"LogLevel": {
4+
"Default": "Information",
5+
"Microsoft.AspNetCore": "Warning"
6+
}
7+
}
8+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"Logging": {
3+
"LogLevel": {
4+
"Default": "Information",
5+
"Microsoft.AspNetCore": "Warning",
6+
"Aspire.Hosting.Dcp": "Warning"
7+
}
8+
}
9+
}

demo/DemoServer/ChatHubA.cs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
using System;
2+
using System.Threading.Tasks;
3+
using Microsoft.AspNetCore.SignalR;
4+
using Microsoft.Extensions.Logging;
5+
6+
namespace DemoServer
7+
{
8+
public class UserIdProvider : IUserIdProvider
9+
{
10+
public virtual string GetUserId(HubConnectionContext connection)
11+
{
12+
return "staticUserid";
13+
}
14+
}
15+
16+
public class ChatHubA : Hub
17+
{
18+
private readonly ILogger<ChatHubA> _logger;
19+
20+
public ChatHubA(ILogger<ChatHubA> logger)
21+
{
22+
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
23+
}
24+
25+
private readonly string groupId = Guid.Empty.ToString();
26+
27+
public async Task SendMessage(string name, string message)
28+
{
29+
// _logger.LogInformation($"{nameof(SendMessage)} called. ConnectionId:{Context.ConnectionId}, Name:{name}, Message:{message}");
30+
await Clients.Group(groupId).SendAsync("BroadcastMessage", name, message);
31+
}
32+
33+
public override async Task OnConnectedAsync()
34+
{
35+
_logger.LogInformation($"{nameof(OnConnectedAsync)} called.");
36+
37+
await base.OnConnectedAsync();
38+
await Groups.AddToGroupAsync(Context.ConnectionId, Guid.Empty.ToString());
39+
}
40+
41+
public override async Task OnDisconnectedAsync(Exception? exception)
42+
{
43+
_logger.LogInformation(exception, $"{nameof(OnDisconnectedAsync)} called.");
44+
45+
await base.OnDisconnectedAsync(exception);
46+
await Groups.RemoveFromGroupAsync(Context.ConnectionId, Guid.Empty.ToString());
47+
}
48+
}
49+
}
Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,7 @@
1-
using System;
2-
using System.Threading.Tasks;
31
using Microsoft.AspNetCore.SignalR;
4-
using Microsoft.Extensions.Logging;
52

63
namespace DemoServer
74
{
8-
public class UserIdProvider : IUserIdProvider
9-
{
10-
public virtual string GetUserId(HubConnectionContext connection)
11-
{
12-
return "staticUserid";
13-
}
14-
}
15-
16-
public class ChatHubA : Hub
17-
{
18-
private readonly ILogger<ChatHubA> _logger;
19-
20-
public ChatHubA(ILogger<ChatHubA> logger)
21-
{
22-
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
23-
}
24-
25-
private readonly string groupId = Guid.Empty.ToString();
26-
27-
public async Task SendMessage(string name, string message)
28-
{
29-
// _logger.LogInformation($"{nameof(SendMessage)} called. ConnectionId:{Context.ConnectionId}, Name:{name}, Message:{message}");
30-
await Clients.Group(groupId).SendAsync("BroadcastMessage", name, message);
31-
}
32-
33-
public override async Task OnConnectedAsync()
34-
{
35-
_logger.LogInformation($"{nameof(OnConnectedAsync)} called.");
36-
37-
await base.OnConnectedAsync();
38-
await Groups.AddToGroupAsync(Context.ConnectionId, Guid.Empty.ToString());
39-
}
40-
41-
public override async Task OnDisconnectedAsync(Exception? exception)
42-
{
43-
_logger.LogInformation(exception, $"{nameof(OnDisconnectedAsync)} called.");
44-
45-
await base.OnDisconnectedAsync(exception);
46-
await Groups.RemoveFromGroupAsync(Context.ConnectionId, Guid.Empty.ToString());
47-
}
48-
}
49-
505
public class ChatHubB : Hub
516
{
527
private readonly ILogger<ChatHubB> _logger;

demo/DemoServer/DemoServer.csproj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@
33
<PropertyGroup>
44
<CopyRefAssembliesToPublishDirectory>false</CopyRefAssembliesToPublishDirectory>
55
<IsPackable>false</IsPackable>
6-
<TargetFrameworks>net8.0</TargetFrameworks>
6+
<TargetFrameworks>net9.0</TargetFrameworks>
77
</PropertyGroup>
88

99
<ItemGroup>
1010
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.10" />
11+
12+
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
13+
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
14+
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
15+
<PackageReference Include="OpenTelemetry.Instrumentation.SqlClient" Version="1.12.0-beta.1" />
1116
</ItemGroup>
1217

1318
<ItemGroup>

demo/DemoServer/Pages/Index.cshtml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
<script src="~/lib/microsoft/signalr/dist/browser/signalr.js"></script>
44
<script src="~/js/chat.js"></script>
5+
6+
<div class="row mb-3">
7+
<div class="col-12">
8+
<div class="card">
9+
<div class="card-header">
10+
<h5>Send message via HubContext</h5>
11+
</div>
12+
<div class="card-body">
13+
<div class="row">
14+
<div class="col-8">
15+
<input type="text" id="serverMessageInput" class="form-control" placeholder="Enter message to broadcast from server..." />
16+
</div>
17+
<div class="col-4">
18+
<button id="broadcastButton" class="btn btn-primary">Broadcast from Server</button>
19+
</div>
20+
</div>
21+
</div>
22+
</div>
23+
</div>
24+
</div>
25+
526
<div class="row">
627
@foreach (var suffix in new[] { "A", "B" })
728
{

0 commit comments

Comments
 (0)