1

背景:我正在尝试构建一个调查应用程序,用户可以在其中添加调查答案并将这些答案推送给其他用户(例如,如果问题是“你最喜欢的编程语言是什么?”并且我没有包括 Haskell,用户可以添加“Haskell”作为答案,它会显示在每个人的浏览器上)。我打算使用长轮询来实现这一点。

我的概念方法:我已经确定的方法是设置类似于观察者模式的东西(或者它可能完全像观察者模式。我是设计模式的新手)。

步骤如下: 浏览器向 /app/longpoll 发出请求,它会启动一个视图,该视图 1. 使用时间戳检查是否发生了任何更改,如果发生则返回这些更改,或者 2. 注册自己使用事件委托者并等待消息。然后,当浏览器向 /app/UpdateSurvey 发出请求时,会启动一个视图,其中 1. 更新调查,以及 2. 通知事件委托者调查已更改。

我的问题:鉴于这是解决此问题的明智方法,我该如何实施?似乎我需要一个常设流程来担任事件委托人,但我真的不确定这是什么样子。我如何找到这个过程来注册它?我如何注册?首先,我如何使这个过程存在?如果在将答案添加到投票中时,此过程正忙于委派事件,会发生什么?

我认识到这是一个很长的答案,并且可能已被其他人解决,因此也鼓励文章/书籍推荐。

4

1 回答 1

1

这是与您要求的解决方案不同的解决方案,但是post_save当添加一个使用 websockets 推送给任何打开页面的用户(订阅客户端)的新问题时,如何使用信号呢?

编辑:啊,IE - 使用Juggernaut代替 websockets(如果浏览器支持它们,仍将使用 websockets),适用于 IE6(我认为)和 7(我知道)

于 2012-12-20T15:54:23.253 回答