我有一个通过 9 针串行连接使用本地 UI 进行控制的机器人,我想使其可以通过网页进行控制,但任何时候只有一个用户能够与其交互。我仍在考虑如何在 Web 服务器和本地 PC 之间使用 WCF 通信,稍后可能会问这个问题。现在,我正在努力让网络服务器和前端对想要控制机器人的用户进行排队,先到先得。
到目前为止我唯一想到的就是按照用户请求控制机器人的顺序存储用户 session ,然后使用 AJAX 让每个人知道何时轮到他们了。我想向用户显示他们在队列中的位置,并在其他人完成、放弃 session 或轮流超时时将用户在队列中向前移动。
这看起来是正确的想法吗?您是否已经做到了这一点并且有一个行之有效的好方法?我愿意了解它是如何在任何平台上完成的,只要这些概念也适用于使用 ASP.NET 完成它。
最佳答案
在我看来,Web 应用程序是为了多用户和大规模并发而设计的。 因此,我不确定网络应用程序是否是解决您问题的最佳答案。
但是,我认为可以通过管理多个客户端之间共享的唯一 token (例如在 token 环网络上)来管理网络应用程序上的该问题。
在客户端,就像聊天系统一样,您必须保持客户端的连接打开。要实现这一目标,我认为您必须实现 Periodic Refresh Ajax pattern .
还检查“服务器推送的内容”系统,例如 Comet例如(我只知道它是 Java 不久前,但我很确定 .net 等效项可用)。
这是一个快速描述:
In web development, Comet is a neologism to describe a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it
关于ajax - 如何在 Web 应用程序中对用户进行排队?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/671577/