Microsoft.Azure.Functions.Worker.Extensions.WebPubSub 1.7.0

前缀已保留
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.WebPubSub --version 1.7.0                
NuGet\Install-Package Microsoft.Azure.Functions.Worker.Extensions.WebPubSub -Version 1.7.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.WebPubSub" Version="1.7.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用该包。
paket add Microsoft.Azure.Functions.Worker.Extensions.WebPubSub --version 1.7.0                
#r "nuget: Microsoft.Azure.Functions.Worker.Extensions.WebPubSub, 1.7.0"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将此复制到交互式工具或脚本的源代码中以引用该包。
// Install Microsoft.Azure.Functions.Worker.Extensions.WebPubSub as a Cake Addin
#addin nuget:?package=Microsoft.Azure.Functions.Worker.Extensions.WebPubSub&version=1.7.0

// Install Microsoft.Azure.Functions.Worker.Extensions.WebPubSub as a Cake Tool
#tool nuget:?package=Microsoft.Azure.Functions.Worker.Extensions.WebPubSub&version=1.7.0                

Azure Web PubSub 扩展,为 .NET 的独立进程 Azure Functions 客户端库

此扩展定义了 Azure Functions 的 .NET 独立工作进程中的绑定类型和触发器,使您可以编写响应 Web PubSub 任何事件的函数。

源代码 | 包 | API 参考文档 | 产品文档 | 示例

入门

安装包

NuGet 安装客户端库

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.WebPubSub

先决条件

您必须有一个 Azure 订阅 和一个包含 Web PubSub 资源的 Azure 资源组。按照这个 分步教程 创建 Azure Web PubSub 实例。

身份验证客户端

为了使扩展与Azure Web PubSub服务协同工作,您需要提供一个有效的ConnectionString

您可以在Azure门户中找到您的Azure Web PubSub服务的密钥。

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 Function。

ConnectUserEvent事件中,功能将尊重返回值以向服务发送响应。然后,服务将根据这些响应进行操作。例如,Connect将仅尊重ConnectEventResponseEventErrorResponse,并且忽略其他返回值。当返回EventErrorResponse时,服务将断开客户端连接。

示例

使用Web PubSub输入绑定的功能

使用WebPubSubConnectionInput构建客户端协商URL。

[Function("Negotiate")]
public static HttpResponseData Run([HttpTrigger(AuthorizationLevel.Anonymous)] HttpRequestData req,
[WebPubSubConnectionInput(Hub = "<web_pubsub_hub>", Connection = "<web_pubsub_connection_name>")] WebPubSubConnection connectionInfo)
{
    var response = req.CreateResponse(HttpStatusCode.OK);
    response.WriteAsJsonAsync(connectionInfo);
    return response;
}

使用WebPubSubContextInput读取在HttpTrigger下的Web PubSub请求。在仅支持HttpTrigger功能的静态Web应用程序中,这将很有用。

// validate method when upstream set as http://<func-host>/api/{event}
[Function("validate")]
public static HttpResponseData Validate(
    [HttpTrigger(AuthorizationLevel.Anonymous, "options")] HttpRequestData req,
    [WebPubSubContextInput] WebPubSubContext wpsReq)
{
    return BuildHttpResponseData(req, wpsReq.Response);
}

// Respond AbuseProtection to put header correctly.
private static HttpResponseData BuildHttpResponseData(HttpRequestData request, SimpleResponse wpsResponse)
{
    var response = request.CreateResponse();
    response.StatusCode = (HttpStatusCode)wpsResponse.Status;
    response.Body = response.Body;
    foreach (var header in wpsResponse.Headers)
    {
        response.Headers.Add(header.Key, header.Value);
    }
    return response;
}

使用Web PubSub输出的功能

[Function("Notification")]
[WebPubSubOutput(Hub = "<web_pubsub_hub>", Connection = "<web_pubsub_connection_name>")]
public static WebPubSubAction Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req)
{
    return new SendToAllAction
    {
        Data = BinaryData.FromString($"Hello SendToAll."),
        DataType = WebPubSubDataType.Text
    };
}

使用Web PubSub触发的功能

[Function("Broadcast")]
public static UserEventResponse Run(
[WebPubSubTrigger("<web_pubsub_hub>", WebPubSubEventType.User, "message")] UserEventRequest request)
{
    return new UserEventResponse("[SYSTEM ACK] Received.");
}

有关详细信息,请参阅示例README.md

故障排除

有关故障排除指导,请参阅监控Azure Function

下一步

阅读Azure Function概述创建Azure Function指南

贡献

有关构建、测试和贡献此库的详细信息,请参阅我们的CONTRIBUTING.md

此项目欢迎贡献和建议。大部分贡献要求您同意贡献者许可协议(CLA),声明您拥有并实际拥有授予我们使用您贡献的权利。有关详细信息,请访问cla.microsoft.com

本项目采用微软开源行为准则 Microsoft Open Source Code of Conduct。更多信息请参阅 行为准则常见问题解答 或联系 [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 953 7/4/2024
1.7.0-beta.1 9,711 9/15/2023
1.5.0-beta.1 3,258 5/4/2023