JavaScript聊天客户端的服务器轮询间隔

前端之家收集整理的这篇文章主要介绍了JavaScript聊天客户端的服务器轮询间隔前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为我的网站建立一个基本的小 AJAX shoutBox /聊天,但我不知道如何实现服务器轮询.

以下是我正在考虑的基本程序流程:

>用户进入页面,显示最后10条消息
>要获取其他人发送的消息,客户端javascript将请求具有timestamp参数的URL(设置为客户端接收的最后一条消息的值)
>服务器从该时间戳返回所有消息(最多10个).

唯一的问题是轮询服务器的频率.显然,每次添加新消息时,都应该轮询,但是当您只是阅读他人的消息时,需要自动更新.

应该是设定的时限吗?例如:每10秒钟.或者,根据使用情况会有所不同吗?例如:5秒钟后检查.如果没有消息,请不要再检查10秒.如果还没有新消息,请检查15秒钟,然后20秒,最多可能每30秒钟一次.每次有一个新的信息检测到重置你的计时器回到5秒钟并重新开始.

我只是担心对服务器造成不必要的压力,考虑到我们可以同时上网数百个用户.

…或者我把整个事情弄错了?有没有更好的方法来实现一个基本的javascript聊天?

解决方法

彗星,由Brian描述是一个很好的技术,但需要在服务器上的会话支持,这可能比您关心实现一个简单的聊天框更高级.

实现轮询间隔的最佳方法是想象一下你有一个聊天窗口,您可以尽可能减少其他内容,或打开查看是否有新消息.当你在谈话中间时,你会频繁地切换(投票).如果您暂时不收到任何消息,您将开始看起来更稀有和更稀有,直到您只是偶尔检查.

假设您不需要进行实时打字,您可以在峰值活动时每3秒钟进行一次轮询,如果5-10次投票中没有显示,则可以启动间隔时间(可能每次增加一次) ),直到达到30-60秒.收到消息后应将轮询间隔重新设置为几秒钟,同时发送消息应立即轮询,但可能不需要影响轮询的频率.

猜你在找的JavaScript相关文章