【发布时间】:2023-03-18 17:56:01
【问题描述】:
我在 ASP.NET Core Web Api 中有一个服务,它将接收来自 SPA 用户的请求。 每个用户都是电话接线员,隶属于分支机构。 在我的应用程序中,我使用电话提供商。该提供程序提供了一些在我的项目中引用的 DLL。 对于在我的应用程序中发出登录请求的每个操作员,我需要 使用电话提供商提供的可用于集成的 DLL 向电话提供商注册。 在提供者处注册操作员时,将返回一个 IInstance 类型的对象以及操作员的信息。 在这个对象中,我需要注册操作员将发生的事件,例如来电、通话结束等。 所有这些事件都是由电话提供商的服务器触发的,我的应用程序需要监听这些事件, 并通过 SignalR 通知 SPA。
我的问题是:如何保存提供者返回的 IInstance 对象,以及所有已注册的事件, 对于每个登录我的服务的用户?
是否可以使用会话来存储这些实例?
public async Task<IActionResult> Dial(string user)
{
IInstance instance = _integrationService.Login(user);
// I need my application to listen to these events, even after the request ends.
instance.LoggedAgent.IncomingSessionEvent += Agent_IncomingSessionEventHandler
instance.LogoutEvent += Instance_LogoutEventHandler;
return Ok();
}
谢谢!
【问题讨论】:
标签: c# asp.net-core asp.net-web-api .net-core