2

我有一个通过 9 针串行连接与本地 UI 控制的机器人,我想通过网页控制它,但任何时候都应该只有一个用户能够与之交互。我仍在考虑如何在 Web 服务器和本地 PC 之间使用 WCF 通信,以后可能会问这个问题。现在,我正准备让 Web 服务器和前端对想要控制机器人的用户进行排队,先到先得。

到目前为止,我唯一想到的就是按照用户请求控制机器人的顺序存储用户会话,然后使用 AJAX 让每个人知道何时轮到他们。我想向用户显示他们在队列中的位置,并在其他人完成时将用户在队列中移动,放弃他们的会话或在轮到他们时超时。

这似乎是正确的想法吗?您是否已经这样做了并且有一个有效的好方法?我愿意听听它是如何在任何平台上完成的,只要这些概念也适用于使用 ASP.NET 完成它。

4

2 回答 2

3

在我看来,Web 应用程序是多用户和大规模并发的。因此,我不确定 Web 应用程序是否是您问题的最佳答案。

但是,我认为可以通过管理在多个客户端之间共享的唯一令牌(例如在令牌环网络上)来管理 webapp 上的问题。

在客户端,就像聊天系统一样,您必须保持客户端的连接打开。为此,我认为您必须实现Periodic Refresh Ajax 模式

还要检查“服务器推送的内容”系统,例如Comet(我知道它只是在一段时间前是 Java,但我很确定有一个 .net 等价物可用)。

这是一个快速的描述:

在 Web 开发中,Comet 是描述 Web 应用程序模型的新词,在该模型中,长期持有的 HTTP 请求允许 Web 服务器将数据推送到浏览器,而无需浏览器显式请求它

这里还有一篇关于 Comet on Ajaxian 的有趣文章

于 2009-03-24T17:53:14.840 回答
0

事实上,有一种解决方案是 .NET 远程处理。

该定义作为令牌是正确的,或者假设应该传递一个对象。

于 2011-09-22T23:34:24.810 回答