如何允许JavaScript接收使用信号R发送给特定用户(或自身)的消息?
我以前问过这个问题,但由于这个线程()的原因,它被关闭了,因为重复了这个问题-但是这并没有显示我在标题中明确提到的JavaScript 我在ASP.Net中有一个WebForm应用程序,它使用Signal将实时数据推送到登录的用户。设置工作得很好,但我意识到我正在向所有客户端广播消息,虽然这不会导致向登录用户显示错误的数据,但会导致在只有一个用户进行数据推送时为所有用户调用JavaScript函数 我已经修改了中心代码以向特定用户广播(如何允许JavaScript接收使用信号R发送给特定用户(或自身)的消息?,javascript,jquery,asp.net,signalr,Javascript,Jquery,Asp.net,Signalr,我以前问过这个问题,但由于这个线程()的原因,它被关闭了,因为重复了这个问题-但是这并没有显示我在标题中明确提到的JavaScript 我在ASP.Net中有一个WebForm应用程序,它使用Signal将实时数据推送到登录的用户。设置工作得很好,但我意识到我正在向所有客户端广播消息,虽然这不会导致向登录用户显示错误的数据,但会导致在只有一个用户进行数据推送时为所有用户调用JavaScript函数 我已经修改了中心代码以向特定用户广播(user),并提供了用户ID,我还尝试了使用连接ID的Cli
user
),并提供了用户ID,我还尝试了使用连接ID的Client
。这两种代码在codebehind中都可以正常启动,但javascript不会更新前端
我相信这是因为JavaScript没有被修改以侦听发送给用户的消息,但我不确定我需要如何修改代码以允许接收消息
Hub中的两条试用线路如下:
context.Clients.User(Me.context.User.Identity.GetUserId()).ReceiveNotification(notifCount)
context.Clients.Client(Me.context.ConnectionId).ReceiveNotification(notifCount)
此处信号器消息的JavaScript/jQuery函数:
$(函数(){
var nf=$.connection.notificationHub;
nf.client.receiveNotification=函数(notifCount){
//更新数据
}
$.connection.hub.start().done(函数(){
nf.server.sendNotifications();
}).失败(功能(e){
警报(e);
});
//$.connection.hub.start();
});
要回拨客户机(或自己),您应该使用:
Clients.Caller.addContosoChatMessageToPage(name, message);
Clients.Client(Context.ConnectionId).addContosoChatMessageToPage(name, message);
对于呼叫用户,您应使用:
Clients.Caller.addContosoChatMessageToPage(name, message);
Clients.Client(Context.ConnectionId).addContosoChatMessageToPage(name, message);
参考资料-太棒了,你刚刚省去了3周的挫折和一个项目!非常感谢,弗兰克!