我有通知中心,我有方法应该使用Clients.Users()
方法通过其ID来向相关用户发送某种消息,该方法接受参数IList<string> UserIds
。
在Notification类中,我得到了某种消息,在第二个List参数中,我只获得了我从数据库中获取的用户ID。
public void NewProjectNotification(Notification notification, List<string> involvedUsers)
{
IHubContext _ctx = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
_ctx.Clients.Users(involvedUsers).newProjectNotification(notification);
}
我的问题是,当这个hub方法被触发时,它永远不会到达我的angularJS客户端方法来广播这个通知
$scope.notifications = NotificationService.newProjectNotification(function(callback){
$scope.OverAllCount = $scope.OverAllCount + 1;
$scope.notification.push(callback.Value);
});
我的问题显然是使用Clients.Users()
方法,因为当我使用All
方法向所有连接的用户广播此消息时,它工作正常,但我只想将其发送给相关用户,而不是所有
我知道还有Clients()
方法接受List<string> connectionIds
,但我想知道我在这种情况下做错了。
编辑:
1)_ctx是Hub上下文,我用它来访问客户端方法
2)关于Id的...我得到了项目表单,我传递了相关用户,之后我提取了他们的Id并将它们存储到List
中,并将其作为参数发送到我的Hub方法