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 开源代码行为守则。有关更多信息,请参阅行为守则常见问题解答或通过[email protected]与我们联系以获得任何额外的问题或评论。
产品 | 版本 兼容和附加的计算机目标框架版本。 |
---|---|
.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 |