加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在集线器上下文之外的SignalR集线器中调用Caller方法

发布时间:2020-12-16 07:01:42 所属栏目:asp.Net 来源:网络整理
导读:我有一个关于SignalR的Caller方法的问题.在hub方法中,我们可以像这样调用客户端函数. Clients.Caller.addContosoChatMessageToPage(name,message); 但是当我用它从集线器上下文之外调用它时,它找不到或没有实现?像这样.. var context = GlobalHost.Connecti
我有一个关于SignalR的Caller方法的问题.在hub方法中,我们可以像这样调用客户端函数.

Clients.Caller.addContosoChatMessageToPage(name,message);

但是当我用它从集线器上下文之外调用它时,它找不到或没有实现?像这样..

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
 context.Clients.Caller.reportProgress(recordCount,totalCount);

有人可以在这部分启发我,还是有其他方式来实现它..
到现在为止我用来实现这个

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
 context.Clients.User(CurrentUser.Usernm).reportProgress(recordCount,totalCount);

但现在我们不是基于声明的身份验证,因此如果记录相同的usernm将会出现问题.

解决方法

在集线器之外,显然没有调用者,因为服务器是启动者.

如果您担心唯一的用户名,则需要implement a custom IUserIdProvider,或者您需要以其他方式使用manage connection ids per user.然后你可以打电话

context.Clients.Client(connectionId).reportProgress();

这将是独一无二的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读