【问题标题】:Tracking, if my Page is opened as Tab跟踪,如果我的页面作为选项卡打开
【发布时间】:2016-01-23 22:20:36
【问题描述】:

我目前正在从事一个小型个人项目,我希望在其中拥有与游戏相关的登录/注册功能。

我页面上的每个注册用户都可以选择通过按钮排队参加活动。当用户单击按钮时,他会排队等待特定事件。我的后端应该知道向每个排队的用户(每隔几秒)发送一个 ping 以确定用户是否仍然处于活动状态。为了确定他的活动,我想跟踪我的页面/应用程序状态。如果我的页面在浏览器中的某个位置(在选项卡中)打开,ping 应该返回一个 true 来告诉我的数据库,用户仍在排队等待事件。如果找不到我打开的页面(关闭浏览器、关闭电脑(崩溃)或关闭标签),ping 应该返回 false。

我正在使用 C# 和 asp.net MVC

所以我正在寻找一种体面的方法来通过后端 ping 解决方案在客户端检查我的页面状态。

关于如何完成这种状态检查的任何提示?不胜感激。

【问题讨论】:

  • 为什么不尝试相反的方式——让客户端更新后端以知道它仍然存在?看看AJAX long-polling。然后,您的后端只需要处理传入 AJAX 请求的逻辑,如果您没有按预期收到 AJAX 请求,请设置超时以将它们从队列中删除。
  • 你的......也会看看这个;)
  • 没问题 - 乐于助人! :)

标签: javascript c# jquery asp.net asp.net-mvc


【解决方案1】:

我无法在此处提供完整的解决方案,其中包含有关如何解决问题的代码,但我可以给你一个提示,让你继续解决你的需求。

您需要的是Web Sockets,在.NET 领域,进入实时客户端-服务器通信世界的最简单方法之一是SignalR。

我会看看SignalR 以及它是如何工作的,我假设您会立即弄清楚如何解决您的问题。

关于跟踪页面是否作为选项卡打开的事情,首先我不知道多年来不支持选项卡的任何现代Web浏览器,因此以这种方式工作将毫无用处。您只需要使用 ping-pong 方法让服务器知道某个客户端仍然活着,而与连接到您的端点的人无关(谁在乎它是 Web 应用程序还是移动应用程序)。

【讨论】:

  • 你的答案,我只是在寻找一些提示来解决问题,只需要一个条目,所以你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-07
  • 2011-12-25
  • 2014-01-25
  • 2010-10-30
  • 2011-04-23
  • 1970-01-01
  • 2011-01-12
相关资源
最近更新 更多