以下是我想用信号R实现的场景。
如果正在发送电子邮件,则会显示消息 示例:“发送电子邮件..”
完成电子邮件发送后,将向同一用户显示另一条消息,说明
示例:“电子邮件已成功发送。”
我将如何使用Signal R实现此目的并仅将通知发送给一位用户。
阅读说使用连接ID的帖子,但这不会改变修复 我想仅为授权用户执行此操作,或者我们可以使用静态用户ID。
答案 0 :(得分:1)
我看到了两种不同的解决方案,有两种不同的解决方案。服务器跟踪属于特定用户的哪个connectionId。或者客户端让服务器知道要使用哪个connectionId。
首先,您需要将每个用户映射到他们拥有的connectionId。请记住,用户可以拥有多个connectionId,因为他/她可以在多个选项卡或浏览器中登录。在服务器上很难区分连接,因此当用户发送电子邮件时,最容易通知属于该用户的所有连接。
有几种方法可以跟踪用户的connectionIds。这是一个很好的walk through。在您的情况下,我认为UserID提供程序选项非常适合,因为它只是想要向当前用户发送更新,因此易于实现且足够。
另一种方法可能是在对服务器的调用中包含connectionId。这样,服务器就知道要报告哪个连接。您可以使用以下命令在Javascript中获取connectionId(如this answer中所述)
var c_id = $.connection.hub.id
希望这有帮助!