C# 如何运行两个功能信号集线器?
我目前有一个消息页面,显示发送给用户的所有新消息。这些消息与C# 如何运行两个功能信号集线器?,c#,jquery,asp.net,signalr,signalr-hub,C#,Jquery,Asp.net,Signalr,Signalr Hub,我目前有一个消息页面,显示发送给用户的所有新消息。这些消息与NewMessageCount一起存储在数据库中。如果用户有一条新消息,则在从NewMessagecount中选择的消息旁边会显示一个小通知。我使用信号器来实现这一点,我对信号器非常陌生,所以如果我犯了一个明显的错误,请原谅 我在Hub中有两个函数,它们可以很好地工作,因为它们过滤和更新正确的字段。然而,我的问题是,我似乎无法让这两个函数在消息页面上一个接一个地运行。当用户单击message选项卡时,我想要notifications.s
NewMessageCount
一起存储在数据库中。如果用户有一条新消息,则在从NewMessagecount
中选择的消息旁边会显示一个小通知。我使用信号器来实现这一点,我对信号器非常陌生,所以如果我犯了一个明显的错误,请原谅
我在Hub
中有两个函数,它们可以很好地工作,因为它们过滤和更新正确的字段。然而,我的问题是,我似乎无法让这两个函数在消息页面上一个接一个地运行。当用户单击message选项卡时,我想要notifications.server.removeNotification()代码>以运行
<script type="text/javascript">
$(function () {
var notifications = $.connection.notificationHub;
notifications.client.recieveNotification = function (totalNewMessages) {
$('#NewMessages').text(totalNewMessages);
};
notifications.client.removeNotification = function (totalNewMessages) {
$('.Message').click(function () {
$('#NewMessages').text(totalNewMessages);
});
};
// Start the connection.
$.connection.hub.start(function () {
notifications.server.sendNotifications();
notifications.server.removeNotification(); //This is what i want to run on the click event?? But don't know how to
}).fail(function (e) {
alert(e);
});
});
</script>
$(函数(){
var通知=$.connection.notificationHub;
notifications.client.recieveNotification=函数(totalNewMessages){
$('#NewMessages').text(totalNewMessages);
};
notifications.client.removeNotification=函数(totalNewMessages){
$('.Message')。单击(函数(){
$('#NewMessages').text(totalNewMessages);
});
};
//启动连接。
$.connection.hub.start(函数(){
notifications.server.sendNotifications();
notifications.server.removeNotification();//这是我想要在click事件上运行的,但不知道如何运行
}).失败(功能(e){
警报(e);
});
});
提前感谢在@IlyaLuzyanin comment的帮助下,我通过在中心添加单击
处理程序来解决问题。开始
$.connection.hub.start(function () {
notifications.server.sendNotifications();
$('.removemessage').click(function () {
notifications.server.removeNotifications();
})
});
现在还不清楚您想要实现什么,但作为一个附带通知-将您的单击处理程序移出removeNotification
回调-现在它会在每次客户端调用时为click事件添加一个新的回调。removeNotification
被调用,我猜这不是您想要的。@Ilyluzyanin抱歉,如果我没有说清楚的话。与此类似,当一条评论显示在顶部,当用户点击它时,它就会消失。这正是我试图实现的。单击中心中的处理程序。启动回调,如下所示:$('.Message')。单击(函数(){notifications.server.removeNotification();}
和$('#NewMessages')).text
将在客户端.recieveNotification
回调中更新,与当前一样。这是您想要的吗?您正在服务器上调用removeNotifications,它可能不存在。这是不对的。您需要注册一次click处理程序,它与SignalR无关。因此,请将其移出$.connection.hub.start
block.@IlyaLuzyanin谢谢,这为我澄清了一切,非常感谢。