NotificationHubClient 应该在哪里实例化?

Lie*_*iel 4 c# azure azureservicebus asp.net-web-api azure-notificationhub

我正在试验 Azure 通知总线,我的目标是让 WebApi 服务根据控制器操作触发的特定事件发送推送通知。

我想知道实例化NotificationHubClient对象的正确位置在哪里。
我假设它可以在控制器中(就在发送通知之前),或者可以全局初始化(如在 App_Start 中)并在控制器中重新使用。

本示例教程中NotificationHubClient在控制器中实例化:

public RegisterController()
{
    var cn = "<FULL_SAS_CONNECTION_STRING>";
    hubClient = NotificationHubClient(cn, "<NOTIFICATION_HUB_NAME>");
}
Run Code Online (Sandbox Code Playgroud)

什么是首选方式?

Mik*_*eWo 5

我认为您想在控制器中实例化它。根据文档,与 QueueClient 和 SubscriptionClient 类不同,NotificationHubClient 的实例成员不能保证是线程安全。这意味着如果您有一个全局实例并在多个请求处理期间使用它,它们可能无法很好地交互。