【发布时间】:2013-08-15 17:22:11
【问题描述】:
我做了一个私人聊天系统。到目前为止,聊天中有 3 个 jquery ajax post 脚本循环调用服务器以获取新数据。
当前用户和目标用户之间的消息窗口(ajax获取数据库上最后一条消息的时间戳,并将其与显示的最后一条消息时间戳进行比较。获取所有消息>比上一条消息时间戳并显示在消息窗口上。ajax 在最后一次返回后每 5 秒循环一次。)
谁在线检查器(检查 db 是否在线。最后一次返回后,ajax 每隔 30 秒循环一次)
谁向当前用户发送了消息(在消息窗口中检查并获取不是当前目标用户并已向当前用户发送消息的用户。ajax 在最后一次返回后每 15 秒循环一次)
到目前为止,以上 3 个是我唯一拥有的 ajax 循环,我仍在仔细检查我的代码,寻找可以修剪它的区域。
我的问题是。如果我 group together the above 3 ajax post 创建 1 ajax post 并每 5/8 秒循环一次,是否会更好地节省服务器系统资源。还是应该保留它?
我问这个问题是因为我之前收到了主机的警告,说我消耗了他们服务器的系统资源过多(由于一个非常愚蠢的实验)。如果我再搞砸了,他们会切断我的托管,所以我希望你们能理解我为什么要问这种问题。
额外细节:我使用 jquery ajax 与从 mysql 数据库获取数据的 php 脚本对话。请求的循环在客户端完成。
【问题讨论】:
-
1) 转移到真正的主机上(或者你可能正在有效地进行 (D)DOS 攻击。他们不太喜欢那样)2) 使用 websockets
-
不要头脑来进行 ddos 攻击(笑)。这是我第一次阅读有关 websockets 的内容。它有点像长轮询,但下一个级别?我会尝试更多地了解
websockets到目前为止,我喜欢我正在阅读的内容。谢谢! -
@PeeHaa 只有一个问题。是否需要专门设置服务器才能接收 websocket 以便我能够使用 websocket?到目前为止,我的理解是我可以使用 javascript 通过
Socket.send()与服务器通信,但我看到的示例使用不同的端口而不是 80,例如localhost:9998. -
@joespina 服务器不需要专门设置来接收 websocket。但自然地,代码必须以适当的方式编写,以响应有助于处理 websocket 请求的各种事件。许多这样的例子(特别是使用 Node JS)可以在互联网上找到;这是一个cjihrig.com/blog/…
标签: php mysql jquery resources chat