Skip to content

Commit 4a28efb

Browse files
committed
freshness updates: more article updating related articles linked to from signalr-concept-interals.md
1 parent 4afe58a commit 4a28efb

7 files changed

+102
-110
lines changed

articles/azure-signalr/concept-connection-string.md

Lines changed: 55 additions & 58 deletions
Large diffs are not rendered by default.

articles/azure-signalr/howto-network-access-control.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ You can manage network access control for Azure SignalR Service through the Azur
3636

3737
1. Go to the Azure SignalR Service you want to secure.
3838

39-
1. Click on the settings menu called **Network access control**.
39+
1. Select on the settings menu called **Network access control**.
4040

4141
![Network ACL on portal](media/howto-network-access-control/portal.png)
4242

4343
1. To edit default action, toggle the **Allow/Deny** button.
4444

4545
> [!TIP]
46-
> Default action is the action we take when there is no ACL rule matches. For example, if the default action is **Deny**, then request types that are not explicitly approved below will be denied.
46+
> The default action is the action the service takes when there is no ACL rule matches. For example, if the default action is **Deny**, then the request types that are not explicitly approved will be denied.
4747
4848
1. To edit public network rule, select allowed types of requests under **Public network**.
4949

@@ -53,7 +53,7 @@ You can manage network access control for Azure SignalR Service through the Azur
5353

5454
![Edit private endpoint ACL on portal ](media/howto-network-access-control/portal-private-endpoint.png)
5555

56-
1. Click **Save** to apply your changes.
56+
1. Select **Save** to apply your changes.
5757

5858
## Next steps
5959

articles/azure-signalr/signalr-concept-internals.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ A self-hosted ASP.NET Core SignalR application server listens to and connects cl
2828
With SignalR Service, the application server no longer accepts persistent client connections, instead:
2929

3030
1. A `negotiate` endpoint is exposed by Azure SignalR Service SDK for each hub.
31-
1. The endpoint will respond to client's negotiation requests and redirect clients to SignalR Service.
31+
1. The endpoint responds to client's negotiation requests and redirect clients to SignalR Service.
3232
1. The clients connect to SignalR Service.
3333

3434
For more information, see [Client connections](#client-connections).
@@ -82,14 +82,14 @@ To learn more about ASP.NET Core SignalR's, see [Transport Protocols](https://gi
8282
8383
## Data transmission between client and server
8484
85-
When a client is connected to the SignalR Service, the service runtime will find a server connection to serve this client.
85+
When a client is connected to the SignalR Service, the service runtime finds a server connection to serve this client.
8686
8787
- This step happens only once, and is a one-to-one mapping between the client and server connection.
8888
- The mapping is maintained in SignalR Service until the client or server disconnects.
8989
9090
At this point, the application server receives an event with information from the new client. A logical connection to the client is created in the application server. The data channel is established from client to application server, via SignalR Service.
9191
92-
SignalR Service transmits data from the client to the pairing application server. Data from the application server will be sent to the mapped clients.
92+
SignalR Service transmits data from the client to the pairing application server. Data from the application server is sent to the mapped clients.
9393
9494
SignalR Service doesn't save or store customer data, all customer data received is transmitted to target server or clients in real-time.
9595

articles/azure-signalr/signalr-howto-authorize-managed-identity.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Authorize request to SignalR resources with Azure AD from managed identities
2+
title: Authorize managed identity requests to a SignalR resource
33
description: This article provides information about authorizing request to SignalR resources with Azure AD from managed identities
44
author: vicancy
55
ms.author: lianwei
@@ -10,7 +10,7 @@ ms.devlang: csharp
1010
ms.custom: subject-rbac-steps
1111
---
1212

13-
# Authorize request to SignalR resources with Azure AD from managed identities
13+
# Authorize managed identity requests to a SignalR resource
1414

1515
Azure SignalR Service supports Azure Active Directory (Azure AD) authorizing requests from Azure resources using [Managed identities for Azure resources
1616
](../active-directory/managed-identities-azure-resources/overview.md).

articles/azure-signalr/signalr-howto-key-rotation.md

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
---
2-
title: How to rotate access key for Azure SignalR Service
2+
title: Rotate access keys for Azure SignalR Service
33
description: An overview on why the customer needs to routinely rotate the access keys and how to do it with the Azure portal GUI and the Azure CLI.
44
author: vicancy
55
ms.service: signalr
66
ms.topic: how-to
77
ms.date: 07/18/2022
88
ms.author: lianwei
99
---
10-
# How to rotate access key for Azure SignalR Service
10+
# Rotate access keys for Azure SignalR Service
1111

12-
Each Azure SignalR Service instance has a pair of access keys called Primary and Secondary keys. They're used to authenticate SignalR clients when requests are made to the service. The keys are associated with the instance endpoint URL. Keep your keys secure, and rotate them regularly. You're provided with two access keys so that you can maintain connections by using one key while regenerating the other.
12+
For security reasons and compliance requirements, it is important to routinely rotate your access keys. This article describes how to rotate access keys for Azure SignalR Service.
1313

14-
## Why rotate access keys?
14+
Each Azure SignalR Service instance has a primary and a secondary key. They're used to authenticate SignalR clients when requests are made to the service. The keys are associated with the instance endpoint URL. Keep your keys secure, and rotate them regularly. You're provided with two access keys so that you can maintain connections by using one key while regenerating the other.
1515

16-
For security reasons and compliance requirements, routinely rotate your access keys.
1716

1817
## Regenerate access keys
1918

@@ -41,16 +40,12 @@ You also can regenerate keys by using the [Azure CLI](/cli/azure/signalr/key#az-
4140

4241
## Forced access key regeneration
4342

44-
Azure SignalR Service might enforce a mandatory access key regeneration under certain situations. The service notifies customers via email and portal notification. If you receive this communication or encounter service failure due to an access key, rotate the keys by following the instructions in this guide.
43+
The Azure SignalR Service can enforce a mandatory access key regeneration under certain situations. The service notifies customers of mandatory key regeneration via email and portal notification. If you receive this communication or encounter service failure due to an access key, rotate the keys by following the instructions in this guide.
4544

4645
## Next steps
4746

48-
Rotate your access keys regularly as a good security practice.
49-
50-
In this guide, you learned how to regenerate access keys. Continue to the next tutorials about authentication with OAuth or with Azure Functions.
51-
5247
> [!div class="nextstepaction"]
53-
> [Integrate with ASP.NET core identity](./signalr-concept-authenticate-oauth.md)
48+
> [Azure SignalR Service authentication](./signalr-concept-authenticate-oauth.md)
5449
5550
> [!div class="nextstepaction"]
5651
> [Build a serverless real-time app with authentication](./signalr-tutorial-authenticate-azure-functions.md)

articles/azure-signalr/signalr-howto-scale-multi-instances.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ ms.custom: devx-track-csharp
99
ms.date: 07/18/2022
1010
ms.author: lianwei
1111
---
12-
# How to scale SignalR Service with multiple instances?
12+
# Scale SignalR Service with multiple instances
13+
1314
SignalR Service SDK supports multiple endpoints for SignalR Service instances. You can use this feature to scale the concurrent connections, or use it for cross-region messaging.
1415

1516
## For ASP.NET Core
1617

17-
### How to add multiple endpoints from config?
18+
### Add multiple endpoints from config
1819

1920
Config with key `Azure:SignalR:ConnectionString` or `Azure:SignalR:ConnectionString:` for SignalR Service connection string.
2021

@@ -28,9 +29,9 @@ dotnet user-secrets set Azure:SignalR:ConnectionString:east-region-b:primary <Co
2829
dotnet user-secrets set Azure:SignalR:ConnectionString:backup:secondary <ConnectionString3>
2930
```
3031

31-
### How to add multiple endpoints from code?
32+
### Add multiple endpoints from code
3233

33-
A `ServicEndpoint` class is introduced to describe the properties of an Azure SignalR Service endpoint.
34+
A `ServicEndpoint` class describes the properties of an Azure SignalR Service endpoint.
3435
You can configure multiple instance endpoints when using Azure SignalR Service SDK through:
3536
```cs
3637
services.AddSignalR()
@@ -49,23 +50,25 @@ services.AddSignalR()
4950
});
5051
```
5152

52-
### How to customize endpoint router?
53+
### Customize endpoint router
5354

5455
By default, the SDK uses the [DefaultEndpointRouter](https://github.com/Azure/azure-signalr/blob/dev/src/Microsoft.Azure.SignalR/EndpointRouters/DefaultEndpointRouter.cs) to pick up endpoints.
5556

5657
#### Default behavior
57-
1. Client request routing
58+
59+
1. Client request routing:
5860

5961
When client `/negotiate` with the app server. By default, SDK **randomly selects** one endpoint from the set of available service endpoints.
6062

61-
2. Server message routing
63+
2. Server message routing:
6264

63-
When sending a message to a specific *connection* and the target connection is routed to current server, the message goes directly to that connected endpoint. Otherwise, the messages are broadcasted to every Azure SignalR endpoint.
65+
When sending a message to a specific *connection* and the target connection is routed to the current server, the message goes directly to that connected endpoint. Otherwise, the messages are broadcasted to every Azure SignalR endpoint.
6466

6567
#### Customize routing algorithm
68+
6669
You can create your own router when you have special knowledge to identify which endpoints the messages should go to.
6770

68-
A custom router is defined below as an example when groups starting with `east-` always go to the endpoint named `east`:
71+
The following example defines a custom router that routes messages with a group starting with `east-` to the endpoint named `east`:
6972

7073
```cs
7174
private class CustomRouter : EndpointRouterDecorator
@@ -83,12 +86,11 @@ private class CustomRouter : EndpointRouterDecorator
8386
}
8487
```
8588

86-
Another example below, that overrides the default negotiate behavior, to select the endpoints depends on where the app server is located.
89+
The following example overrides the default negotiate behavior and selects the endpoint depending on the location of the app server.
8790

8891
```cs
8992
private class CustomRouter : EndpointRouterDecorator
90-
{
91-
public override ServiceEndpoint GetNegotiateEndpoint(HttpContext context, IEnumerable<ServiceEndpoint> endpoints)
93+
{ public override ServiceEndpoint GetNegotiateEndpoint(HttpContext context, IEnumerable<ServiceEndpoint> endpoints)
9294
{
9395
// Override the negotiate behavior to get the endpoint from query string
9496
var endpointName = context.Request.Query["endpoint"];
@@ -125,7 +127,7 @@ services.AddSignalR()
125127

126128
## For ASP.NET
127129

128-
### How to add multiple endpoints from config?
130+
### Add multiple endpoints from config
129131

130132
Config with key `Azure:SignalR:ConnectionString` or `Azure:SignalR:ConnectionString:` for SignalR Service connection string.
131133

@@ -146,9 +148,9 @@ You can add multiple instance connection strings to `web.config`:
146148
</configuration>
147149
```
148150

149-
### How to add multiple endpoints from code?
151+
### Add multiple endpoints from code
150152

151-
A `ServicEndpoint` class is introduced to describe the properties of an Azure SignalR Service endpoint.
153+
A `ServicEndpoint` class describes the properties of an Azure SignalR Service endpoint.
152154
You can configure multiple instance endpoints when using Azure SignalR Service SDK through:
153155

154156
```cs
@@ -167,11 +169,11 @@ app.MapAzureSignalR(
167169
});
168170
```
169171

170-
### How to customize router?
172+
### Customize a router
171173

172174
The only difference between ASP.NET SignalR and ASP.NET Core SignalR is the http context type for `GetNegotiateEndpoint`. For ASP.NET SignalR, it is of [IOwinContext](https://github.com/Azure/azure-signalr/blob/dev/src/Microsoft.Azure.SignalR.AspNet/EndpointRouters/DefaultEndpointRouter.cs#L19) type.
173175

174-
Below is the custom negotiate example for ASP.NET SignalR:
176+
The following code is a custom negotiate example for ASP.NET SignalR:
175177

176178
```cs
177179
private class CustomRouter : EndpointRouterDecorator
@@ -211,15 +213,15 @@ app.MapAzureSignalR(GetType().FullName, hub, options => {
211213

212214
## Service Endpoint Metrics
213215

214-
To enable advanced router, SignalR server SDK provides multiple metrics to help server do smart decision. The properties are under `ServiceEndpoint.EndpointMetrics`.
216+
To enable an advanced router, SignalR server SDK provides multiple metrics to help server make smart decisions. The properties are under `ServiceEndpoint.EndpointMetrics`.
215217

216218
| Metric Name | Description |
217-
| -- | -- |
218-
| `ClientConnectionCount` | Total concurrent connected client connection count on all hubs for the service endpoint |
219-
| `ServerConnectionCount` | Total concurrent connected server connection count on all hubs for the service endpoint |
219+
|--|--|
220+
| `ClientConnectionCount` | Total count concurrent client connections on all hubs for the service endpoint |
221+
| `ServerConnectionCount` | Total count of concurrent server connections on all hubs for the service endpoint |
220222
| `ConnectionCapacity` | Total connection quota for the service endpoint, including client and server connections |
221223

222-
Below is an example to customize router according to `ClientConnectionCount`.
224+
The following code is an example of customizing a router according to `ClientConnectionCount`.
223225

224226
```cs
225227
private class CustomRouter : EndpointRouterDecorator
@@ -247,29 +249,27 @@ From SDK version 1.5.0, we're enabling dynamic scale ServiceEndpoints for ASP.NE
247249

248250
The `ServiceEndpoint` object has an `EndpointType` property with value `primary` or `secondary`.
249251

250-
`primary` endpoints are preferred endpoints to receive client traffic, and are considered to have more reliable network connections; `secondary` endpoints are considered to have less reliable network connections and are used only for taking server to client traffic, for example, broadcasting messages, not for taking client to server traffic.
252+
`primary` endpoints are preferred endpoints to receive client traffic because they've have more reliable network connections. `secondary` endpoints have less reliable network connections and are used only for server to client traffic. For example, secondary endpoints are used for broadcasting messages instead of client to server traffic.
251253

252-
In cross-region cases, network can be unstable. For one app server located in *East US*, the SignalR Service endpoint located in the same *East US* region can be configured as `primary` and endpoints in other regions marked as `secondary`. In this configuration, service endpoints in other regions can **receive** messages from this *East US* app server, but there will be no **cross-region** clients routed to this app server. The architecture is shown in the diagram below:
254+
In cross-region cases, the network can be unstable. For an app server located in *East US*, the SignalR Service endpoint located in the same *East US* region is `primary` and endpoints in other regions marked as `secondary`. In this configuration, service endpoints in other regions can **receive** messages from this *East US* app server, but no **cross-region** clients are routed to this app server. The following diagram shows the architecture:
253255

254256
![Cross-Geo Infra](./media/signalr-howto-scale-multi-instances/cross_geo_infra.png)
255257

256-
When a client tries `/negotiate` with the app server, with the default router, SDK **randomly selects** one endpoint from the set of available `primary` endpoints. When the primary endpoint isn't available, SDK then **randomly selects** from all available `secondary` endpoints. The endpoint is marked as **available** when the connection between server and the service endpoint is alive.
258+
When a client tries `/negotiate` with the app server with a default router, the SDK **randomly selects** one endpoint from the set of available `primary` endpoints. When the primary endpoint isn't available, the SDK then **randomly selects** from all available `secondary` endpoints. The endpoint is marked as **available** when the connection between server and the service endpoint is alive.
257259

258-
In cross-region scenario, when a client tries `/negotiate` with the app server hosted in *East US*, by default it always returns the `primary` endpoint located in the same region. When all *East US* endpoints aren't available, the client is redirected to endpoints in other regions. Fail over section below describes the scenario in detail.
260+
In cross-region scenario, when a client tries `/negotiate` with the app server hosted in *East US*, by default it always returns the `primary` endpoint located in the same region. When all *East US* endpoints aren't available, the router redirects the client to endpoints in other regions. The following [failover](#failover) section describes the scenario in detail.
259261

260262
![Normal Negotiate](./media/signalr-howto-scale-multi-instances/normal_negotiate.png)
261263

262-
## Fail-over
264+
## Failover
263265

264-
When all `primary` endpoints aren't available, client's `/negotiate` picks from the available `secondary` endpoints. This fail-over mechanism requires that each endpoint should serve as `primary` endpoint to at least one app server.
266+
When no `primary` endpoint is available, the client's `/negotiate` picks from the available `secondary` endpoints. This failover mechanism requires that each endpoint serves as a `primary` endpoint to at least one app server.
265267

266-
![Fail-over](./media/signalr-howto-scale-multi-instances/failover_negotiate.png)
268+
![Failover](./media/signalr-howto-scale-multi-instances/failover_negotiate.png)
267269

268270
## Next steps
269271

270-
In this guide, you learned about how to configure multiple instances in the same application for scaling, sharding, and cross-region scenarios.
271-
272-
Multiple endpoints supports can also be used in high availability and disaster recovery scenarios.
272+
You can use multiple endpoints in high availability and disaster recovery scenarios.
273273

274274
> [!div class="nextstepaction"]
275275
> [Setup SignalR Service for disaster recovery and high availability](./signalr-concept-disaster-recovery.md)

articles/azure-signalr/signalr-reference-data-plane-rest-api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ The difference is, in this scenario the JWT Token is generated by Azure Active D
9393

9494
You could also use **Role Based Access Control (RBAC)** to authorize the request from your client/server to SignalR Service.
9595

96-
[Learn how to configure Role-based access control roles for your resource](/azure/azure-signalr/authorize-access-azure-active-directory)
96+
For more information, see [Authorize access with Azure Active Directory for Azure SignalR Service](./signalr-concept-authorize-azure-active-directory.md)
9797

9898
### Implement Negotiate Endpoint
9999

0 commit comments

Comments
 (0)