Microsoft.Azure.WebJobs.Extensions.WebPubSub 1.7.0
前缀已保留
dotnet add package Microsoft.Azure.WebJobs.Extensions.WebPubSub --version 1.7.0
NuGet\Install-Package Microsoft.Azure.WebJobs.Extensions.WebPubSub -Version 1.7.0
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.WebPubSub" Version="1.7.0" />
paket add Microsoft.Azure.WebJobs.Extensions.WebPubSub --version 1.7.0
#r "nuget: Microsoft.Azure.WebJobs.Extensions.WebPubSub, 1.7.0"
// Install Microsoft.Azure.WebJobs.Extensions.WebPubSub as a Cake Addin #addin nuget:?package=Microsoft.Azure.WebJobs.Extensions.WebPubSub&version=1.7.0 // Install Microsoft.Azure.WebJobs.Extensions.WebPubSub as a Cake Tool #tool nuget:?package=Microsoft.Azure.WebJobs.Extensions.WebPubSub&version=1.7.0
用于 .NET 的 Azure WebJobs Web PubSub 客户端库
此扩展提供了在 Azure Functions 中接收 Web PubSub webhook 调用的功能,允许您轻松编写响应 Web PubSub 发布的任何事件的函数。
源代码 | 软件包 | API 参考文档 | 产品文档 | 示例
入门
安装软件包
使用 NuGet 安装 Web PubSub 扩展
dotnet add package Microsoft.Azure.WebJobs.Extensions.WebPubSub
先决条件
您必须拥有一个Azure 订阅和一个包含 Web PubSub 资源的 Azure 资源组。按照此分步教程创建 Azure Web PubSub 实例。
验证客户端
为了让扩展与 Azure Web PubSub 服务协同工作,您需要提供一个有效的ConnectionString。
您可以在Azure 门户中找到您 Azure Web PubSub 服务的Keys。
AzureWebJobsStorage连接字符串用于保留所需的处理检查点信息,请参考存储注意事项
对于本地开发,请使用local.settings.json文件来存储连接字符串。<connection-string>可以默认设置为支持扩展中的WebPubSubConnectionString,或者您可以通过在函数绑定属性中将其映射为Connection = <connection-string>来自定义名称。
{
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"<connection-string>": "Endpoint=https://<webpubsub-name>.webpubsub.azure.com;AccessKey=<access-key>;Version=1.0;"
}
}
当部署时,请使用应用程序设置来设置连接字符串。
关键技术概念
使用 Web PubSub 输入绑定
请按照输入绑定教程了解如何使用此扩展来构建WebPubSubConnection并为服务创建 WebSocket 连接。
使用 Web PubSub 输出绑定
请按照输出绑定教程了解如何使用此扩展来发布 Web PubSub 消息。
使用 Web PubSub 触发器
请按照触发器绑定教程了解如何在事件从服务上游发送时触发 Azure 函数。
在Connect和UserEvent事件中,函数会遵守返回值将响应发送回服务。然后根据响应来处理请求或其他情况。响应和事件是一一对应的。例如,Connect只会遵守ConnectEventResponse或EventErrorResponse,并忽略其他返回值。当返回EventErrorResponse时,服务会断开客户端连接。请按照触发器绑定返回值教程了解如何使用触发器返回值。
示例
使用 Web PubSub 输入绑定的函数
public static class WebPubSubConnectionBindingFunction
{
[FunctionName("WebPubSubConnectionBindingFunction")]
public static WebPubSubConnection Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req,
[WebPubSubConnection(Hub = "hub", UserId = "{query.userid}", Connection = "<connection-string>")] WebPubSubConnection connection)
{
Console.WriteLine("login");
return connection;
}
}
使用 Web PubSub 输出绑定的函数
public static class WebPubSubOutputBindingFunction
{
[FunctionName("WebPubSubOutputBindingFunction")]
public static async Task RunAsync(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req,
[WebPubSub(Hub = "hub", Connection = "<connection-string>")] IAsyncCollector<WebPubSubAction> action)
{
await action.AddAsync(WebPubSubAction.CreateSendToAllAction("Hello Web PubSub!", WebPubSubDataType.Text));
}
}
使用 Web PubSub 触发器的函数
public static class WebPubSubTriggerFunction
{
[FunctionName("WebPubSubTriggerFunction")]
public static void Run(
ILogger logger,
[WebPubSubTrigger("hub", WebPubSubEventType.User, "message")] UserEventRequest request,
string data,
WebPubSubDataType dataType)
{
logger.LogInformation("Request from: {user}, data: {data}, dataType: {dataType}",
request.ConnectionContext.UserId, data, dataType);
}
}
使用 Web PubSub 触发器返回值的函数
public static class WebPubSubTriggerReturnValueFunction
{
[FunctionName("WebPubSubTriggerReturnValueFunction")]
public static UserEventResponse Run(
[WebPubSubTrigger("hub", WebPubSubEventType.User, "message")] UserEventRequest request)
{
return request.CreateResponse(BinaryData.FromString("ack"), WebPubSubDataType.Text);
}
}
故障排除
请参阅监视 Azure 函数以获取故障排除指南。
下一步操作
贡献
有关构建、测试和向此库做出贡献的详细信息,请参阅CONTRIBUTING.md。
该项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权利,并且确实授予我们使用您贡献的权利。有关详细信息,请访问cla.microsoft.com。
该项目已采用Microsoft 开源代码行为守则。有关更多信息,请参阅行为守则常见问题解答或通过opencode@microsoft.com与我们联系以获得任何额外的问题或评论。
| 产品 | 版本 兼容和附加的计算机目标框架版本。 |
|---|---|
| .NET | net5.0 已被计算。 net5.0-windows 已被计算。 net6.0 已被计算。 net6.0-android 已被计算。 net6.0-ios 已被计算。 net6.0-maccatalyst 已被计算。 net6.0-macos 已被计算。 net6.0-tvos 已被计算。 net6.0-windows 已被计算。 net7.0 已被计算。 net7.0-android 已被计算。 net7.0-ios 已被计算。 net7.0-maccatalyst 已被计算。 net7.0-macos 已被计算。 net7.0-tvos 已被计算。 net7.0-windows 已被计算。 net8.0 已被计算。 net8.0-android 已被计算。 net8.0-browser 已被计算。 net8.0-ios 已被计算。 net8.0-maccatalyst 已被计算。 net8.0-macos 已被计算。 net8.0-tvos 已被计算。 net8.0-windows 已被计算。 |
| .NET Core | netcoreapp2.0 已被计算。 netcoreapp2.1 已被计算。 netcoreapp2.2 已被计算。 netcoreapp3.0 已被计算。 netcoreapp3.1 已被计算。 |
| .NET Standard | netstandard2.0 兼容。 netstandard2.1 已被计算。 |
| .NET Framework | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
| MonoAndroid | monoandroid 已计算。 |
| MonoMac | monomac 已计算。 |
| MonoTouch | monotouch 已计算。 |
| Tizen | tizen40 已计算。 tizen60 已计算。 |
| Xamarin.iOS | xamarinios 已计算。 |
| Xamarin.Mac | xamarinmac 已计算。 |
| Xamarin.TVOS | xamarintvos 已计算。 |
| Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Azure.Messaging.WebPubSub (>= 1.2.0)
- Microsoft.AspNetCore.Http (>= 2.1.22)
- Microsoft.Azure.WebJobs (>= 3.0.37)
- Microsoft.Azure.WebPubSub.Common (>= 1.2.0)
NuGet 包
此包未被任何 NuGet 包使用。
GitHub 仓库
此包未被任何流行 GitHub 仓库使用。
| 版本 | 下载 | 最后更新 |
|---|---|---|
| 1.7.0 | 46,982 | 8/30/2023 |
| 1.6.0 | 6,605 | 7/13/2023 |
| 1.5.0 | 30,091 | 4/13/2023 |
| 1.4.0 | 10,457 | 2/2/2023 |
| 1.3.0 | 12,774 | 11/11/2022 |
| 1.2.0 | 36,017 | 3/10/2022 |
| 1.1.0 | 17,563 | 12/9/2021 |
| 1.0.0 | 2,828 | 11/12/2021 |
| 1.0.0-beta.4 | 1,410 | 10/28/2021 |
| 1.0.0-beta.3 | 4,596 | 7/26/2021 |
| 1.0.0-beta.2 | 367 | 7/15/2021 |
| 1.0.0-beta.1 | 3,433 | 4/27/2021 |