如何在Web应用程序中排队用户?

时间:2009-03-22 20:33:26

标签: ajax web-applications queue

我有一个通过9针串行连接与本地UI控制的机器人,我想通过网页使其可控制,但只有一个用户应该能够随时与它进行交互。我还在考虑如何在Web服务器和本地PC之间使用WCF通信,并可能在以后询问。现在我想要让网络服务器和前端排队等待想要控制机器人的用户,先到先得。

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

这看起来是正确的想法吗?你已经做过这个并且有一个好的方法吗?我很乐意听到它在任何平台上是如何完成的,只要这些概念也适用于使用ASP.NET。

2 个答案:

答案 0 :(得分:3)

在我看来,Web应用程序是多用户和大量并发的。 所以,我不确定网络应用程序是解决问题的最佳方法。

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

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

同时检查“服务器推送的内容”系统,例如Comet(我知道它仅在几年前才是Java,但我很确定.net等效版本可用)。

这是一个快速描述:

  

在网络开发中,Comet是一个   描述网络的新词   应用模型中长期持有   HTTP请求允许Web服务器   将数据推送到浏览器,没有   浏览器明确要求它

这里还有interesting article about Comet on Ajaxian

答案 1 :(得分:0)

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

定义是真的作为标记,或者说应该传递一个对象。