如何解决如何允许JavaScript使用Signal R接收发送给特定用户或自己的消息?
我之前曾问过这个问题,但是由于该线程(SignalR - Sending a message to a specific user using (IUserIdProvider) *NEW 2.0.0*)而被关闭了以进行复制-但这并未显示我的标题中清楚显示的JavaScript。
我在ASP.Net中有一个WebForm应用程序,该应用程序使用SignalR将实时数据推送给已登录的用户。安装程序工作正常,但意识到我正在向所有客户端广播消息,但这并不会导致错误的数据显示给已登录的用户,确实会在只有一个用户进行数据推送时导致所有用户调用JavaScript函数。
我已经修改了中心代码以广播给特定用户(User
)并提供了用户ID,并且我还尝试了Client
和一个连接ID。两者都可以在后面的代码中正常运行,但是javascript不会更新前端。
我相信这是因为尚未修改JavaScript以侦听发送给用户的消息,但是我不确定如何修改代码以接收消息。
Hub中的2条尝试行:
context.Clients.User(Me.Context.User.Identity.GetUserId()).ReceiveNotification(notifCount)
context.Clients.Client(Me.Context.ConnectionId).ReceiveNotification(notifCount)
此处的SignalR消息的JavaScript / jQuery函数:
$(function () {
var nf = $.connection.notificationHub;
nf.client.receiveNotification = function (notifCount) {
// Update data
}
$.connection.hub.start().done(function () {
nf.server.sendNotifications();
}).fail(function (e) {
alert(e);
});
//$.connection.hub.start();
});
解决方法
要回拨给客户(或自己),您应该使用:
Clients.Caller.addContosoChatMessageToPage(name,message);
对于呼叫用户,您应该使用:
Clients.Client(Context.ConnectionId).addContosoChatMessageToPage(name,message);
参考-docs
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。