实施一个实时投票系统

9
我正在考虑在我的网站上实现一个实时投票系统。该网站提供实时流,我希望能够在主持人发起投票时提示观众选择答案。我知道如何将数据存储在mySQL数据库中,并且知道如何处理答案。然而:
我应该如何在客户端开始投票并显示它?是否应该在页面上每隔几秒钟运行一次脚本,检查另一个页面以查看用户是否有可用的问题?
是否有任何现有的实时投票系统示例,例如我正在考虑实现的系统?
3个回答

4
你需要每隔几秒钟向服务器查询一个新的问题。
另一种选择是保持连接,直到服务器发送更多数据或超时,这只能减少(但不能消除)服务器访问。我认为这被称为“长轮询”。http://en.wikipedia.org/wiki/Push_technology

1
你可以在JavaScript中使用setTimeout每隔几秒钟进行一次AJAX请求,以检查是否有新的问题。
是的,长轮询可能更好,但我确定它会更加复杂。所以如果你能胜任这项工作,就去使用它吧!
以下是有关此主题的更多信息: http://www.webdevelopmentbits.com/avoiding-long-polling

它并不是“更加复杂”,你只是暂时没有发送响应。请参考https://dev59.com/W3RC5IYBdhLWcg3wVvYt。 - Zack Bloom
好的,那就再复杂一些。附注:我在发布的网站上有一个长轮询的代码示例。 - JCOC611

1

你需要从客户端发起连接。最简单的解决方案是让页面每秒钟或更长时间发出一个AJAX请求。网页不必立即返回(它们可以在30秒或更长时间内响应而不会超时)。这种只有在有东西要说时才会响应的一次性连接被称为“长轮询”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接