如何检查用户是否打开特定页面

时间:2019-07-27 00:37:21

标签: asp.net asp.net-mvc signalr signalr-hub

我想知道特定用户是否像聊天页面一样打开特定页面,因为用户可能在线但未打开特定页面。

我正在将ASP.NET MVC 5与SignalR一起使用

情况是,假设两个特定用户之间 A B ,并且当用户 A 发送时,一对一聊天页面给用户 B 的消息,有以下选项:

1- 用户B 打开聊天页面,因此他将在发信人的聊天页面中收到消息,但不会收到通知

2- 用户B 处于在线状态,但未打开聊天页面,因此他将在布局页面的通知菜单中接收通知,但在聊天页面中不接收消息

所以最后我需要知道用户是否在服务器上的 ChatHub 类中打开内部聊天页面 SendMessage 方法,以确定选项< / p>

在服务器的Hub类中发送消息:

public void SendMessage(string msg, string userId)
{
    Clients.Client(connectionId).receiveMessage(chatMsge);

    // here i want to check if user is in chat page or not
   if(user not in chat page)
   {
         Clients.Client(connectionId).receiveNotify(chatMsge);
   }

}

问题是我需要检查sendMessage方法中的条件,因此我需要某种方法转到客户端并返回结果

我被搜查了很多时间,但找不到我需要的东西

在“布局”页面中找到的信号器代码

没有错误消息是我想理解的signalR逻辑

1 个答案:

答案 0 :(得分:0)

如果要检查特定用户是否打开特定页面,只需为该页面添加一个signalR方法,每当有用户加载该页面时,您都可以使用userinfo和页面信息ping signalR方法。

如果您提供更多信息,那将很好,这样您可以获得更好的帮助。