我经营一个网站,用户可以通过浏览器互相聊天(想想Facebook聊天)。处理现场互动的最佳方法是什么?(现在,我每30秒进行一次投票,更新在线用户和新传入的消息,每秒钟在聊天页面上进行另一次投票,以获取新消息。)
我考虑过的事情:
现在,我使用的是短轮询,因为我不知道AJAX长轮询的可伸缩性有多大。我现在正在从servint运行一个VPS服务器(运行apache)。我应该使用长轮询还是短轮询?我不需要绝对的即时响应时间(对聊天应用来说“足够好”)。短时间轮询经常会有几十万用户要杀死我的服务器吗?我该怎么做,请帮忙!
发布于 2011-03-16 15:56:47
几个注意事项:
,
发布于 2011-03-16 11:39:25
这是每个人在推出cometd和nodejs之前都做过的事情。
在我看来,Apache上的PHP请求是非常昂贵的。如果您的聊天应用程序每秒钟检查一次消息,您就会发现Apache没有足够的资源来响应请求。我认为需要改进的另一个方面是改善聊天应用程序的上下文。
如果不检索新消息,为什么它每秒钟更新一次?如果没有留言怎么办?
一些你可以使用的技巧;
需要考虑的一些优化;
server.
apache日志,从而判断应用程序的总体健康状况和响应时间。
当需要缩放时,添加一个新服务器并使用负载均衡器来分发请求。我使用过清漆和HAProxy,并取得了很大的成功,建立起来也不复杂。
发布于 2011-03-16 14:11:43
如果我是你,我会选择一个使用html5网络套接字的库,如果html5不可用的话,它就会回到闪存套接字上,通过漏洞的浏览器应该是一分钟。
另外,您应该放弃php,或者用用python编写的线程套接字服务器来补充它,或者用em-websocket来补充ruby。
https://stackoverflow.com/questions/5313641
复制相似问题