javascript - Pusher 以 > 200ms 减慢 ajax 请求

标签 javascript php jquery ajax pusher

我在使用 Pusher 时遇到了一些问题.通常一个 AJAX 请求到我的服务器大约需要 100 毫秒,但是当我在 Pusher 中运行触发函数(告诉 Pusher 推送到所有连接的客户端)时,请求被减慢了大约 200-300 毫秒。

$pusher->trigger('presence-my-channel', 'my-event', $data);

它是否与它是一个存在 channel 有关?

有什么办法解决这个问题吗?我可以在本地分别做什么服务器端?我可以更改一些 AJAX 设置吗? (我不需要返回对我的 AJAX 请求的响应。)

有时请求甚至需要 500 毫秒,如果其中三个请求几乎同时被触发,事情就会变慢。

有什么可以做的吗?

最佳答案

如果您不关心调用 Pusher Web API 的结果,而只是希望它尽快完成,那么您可以考虑进行异步调用。已提出拉取请求以将其添加到 pusher-php-server 库中: https://github.com/pusher/pusher-php-server/pull/11

我建议为此拉取请求添加 +1,以便编写测试,将其合并到 master 中,然后标记发布。

您的另一个选择是将消息推送到消息队列,而不是直接调用 Pusher Web API。然后你可以有另一个守护进程服务读取消息队列并向 Pusher 发出请求。这将消除因向 Pusher 发出 HTTP 请求而导致的延迟。

关于javascript - Pusher 以 > 200ms 减慢 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877690/

相关文章:

javascript - 如何根据其动态值选择列表

javascript - 缓存文件直到下一页加载

javascript - 如何从外部JS文件调用服务器端按钮单击事件?

mysql - 使用 php 发送包含 mysql 数据的电子邮件

php - 发送 QUERY 数据包时出错。 PID=9565

javascript - MVC 4 应用程序中的动态背景图像

javascript - 在 select2 中捕获回车键

php - 我在 javascript 中遇到验证问题

php - 在对象中存储循环依赖项是不好的做法,还是可能会遇到性能问题?

jquery - 设置 jQuery 超时间隔的最佳方法是什么?