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                
此命令旨在在 Visual Studio 的软件包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.WebPubSub" Version="1.7.0" />                
对于支持 PackageReference 项目的方案,将此 XML 节复制到项目文件中,以引用包。
paket add Microsoft.Azure.WebJobs.Extensions.WebPubSub --version 1.7.0                
#r "nuget: Microsoft.Azure.WebJobs.Extensions.WebPubSub, 1.7.0"                
#r 指令可以用在 F# Interactive 和 Polyglot Notebooks 中。将此复制到交互式工具或脚本的源代码中,以引用包。
// 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 函数。

ConnectUserEvent事件中,函数会遵守返回值将响应发送回服务。然后根据响应来处理请求或其他情况。响应和事件是一一对应的。例如,Connect只会遵守ConnectEventResponseEventErrorResponse,并忽略其他返回值。当返回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 函数以获取故障排除指南。

下一步操作

阅读Azure 函数简介创建 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 已计算。
兼容目标框架
包含的目标框架(在包中)
了解有关 目标框架.NET Standard 的更多信息。

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