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
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.WebPubSub" Version="1.7.0" />
paket add Microsoft.Azure.Functions.Worker.Extensions.WebPubSub --version 1.7.0
#r "nuget: Microsoft.Azure.Functions.Worker.Extensions.WebPubSub, 1.7.0"
// 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。
在Connect
和UserEvent
事件中,功能将尊重返回值以向服务发送响应。然后,服务将根据这些响应进行操作。例如,Connect
将仅尊重ConnectEventResponse
或EventErrorResponse
,并且忽略其他返回值。当返回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 已计算。 |
-
.NETStandard 2.0
- Microsoft.Azure.Functions.Worker.Extensions.Abstractions (>= 1.1.0)
- System.Memory.Data (>= 1.0.2)
- System.Text.Json (>= 4.7.2)
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 |