问题标签 [ajax-push]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
787 浏览

php - 使用 PHP/JQuery 和推送技术进行网络聊天(仅适用于一小部分用户,共享主机)

我正在为一组 10 人开发一个小型私人网站。它本质上是一个只为我们服务的小型社交网络。我们目前还使用 Windows Live Messenger 进行实时聊天,但我们正在寻找一种替代方案,因为用于 Mac、Linux 和智能手机的 MSN 客户端不支持我们使用的 MSN 中最近添加的群组功能。

我一直在阅读有关推送技术的一些内容,以了解如何创建一个适合我们非常有限的需求的基于网络的聊天室。我认为 Apache 根本不适合长轮询,使用 APE 之类的东西会是一个更好的主意。然而,我们在一个相当便宜但非常好的共享主机上运行,​​所以我们根本没有能力安装任何服务器端软件。

对于我的问题。

既然我们毕竟只是少数用户,而且大多数时候只有一半的人会在线,那么简单的 PHP 长轮询可能会起作用吗?从下午早些时候到深夜,聊天几乎每天都会开放,但并非所有用户都会一直处于活跃状态。尽管如此,平均而言,每天可能有五六个用户整天不离开就在线。当我们最活跃的时候,会有很多时候在短时间内发送很多消息,但很难估计有多少。

是否值得研究使用 Websockets 的 PHP 服务器实现和 Flash 后备(对于桌面使用我们很好,因为我们基本上都使用 Chrome,但我们很高兴能够使用 Android设备)。

我还偶然发现了 www.pusher.com,他们的免费替代品看起来非常合适,每天有 20 个连接和 100 000 条消息(即使在一周内我们也不会达到那么多)。你会建议我们直接走那条路吗?

我知道这里有很多关于 PHP 和 Apache 推送技术的问题,但我还没有找到任何解决应用程序使用受限的情况。任何提示和建议将不胜感激。我几乎知道如何编写聊天本身,我只需要知道使用的最佳方法,以及上述任何一种方法是否有效。

0 投票
2 回答
564 浏览

javascript - GAE 通道 API - 从 Javascript 检查套接字是否处于活动状态

我有一个使用通道 API 的应用程序。连接应该始终处于活动状态(24x7),并且我已经以这样的方式实现它,即每次通道断开连接时,都会自动创建一个新通道。这在大多数情况下都可以正常工作,但我有一些场景不会调用 onError() 方法(例如连接的 WIFI 更改,或者计算机进入睡眠状态并返回)。而且我的 JS 应用程序错误地假设通道仍然处于活动状态,而实际上它不是。

我想到的一种解决方案是 ping 服务器要求发送消息。就像一个保持活力。但这对服务器来说是一个很大的负担。(例如,每 10 秒发送 1000 个 ping 请求的客户端相当于每秒 100 个请求)

所以我想知道是否有一种方法可以检查本地连接是否有效,这样我就不会无意中在我的服务器上进行 DoS 附加。

谢谢

0 投票
0 回答
439 浏览

grails - Grails 事件推送无法初始化 Atmosphere 框架

部署一个Grails使用Events Push Plugin. 我不断收到此错误。

生产环境:Tomcat 7.39

服务器:CentOS,Java 版本:OpenJDK Runtime Environment (IcedTea6 1.10.8) (rhel-1.27.1.10.8.el5_8-x86_64) OpenJDK 64-Bit Server VM(build 20.0-b11,混合模式)

插件版本:events-push:1.0.M7

该项目在开发模式下运行良好。

任何帮助,将不胜感激!

0 投票
1 回答
18 浏览

ajax - 需要解决ajax推送机制

我正在开发一个网络应用程序。有变化时需要更新数据的地方。

目前我正在设置一个间隔 [5 秒] 用于从服务器获取数据 [使用 ajax 请求获取数据]。

但是这里的问题是即使服务器数据没有更新,也会进行不必要的调用。

谁能告诉我最好的解决方案。

下面是示例代码我在做什么:

0 投票
1 回答
718 浏览

javascript - PHP“推”到Javascript

现在我们有一个在本地网络上运行的 Web 应用程序,客户端在该网络上运行所有的 javascript。为了确保一切同步,这些客户端当前通过发送它收到的最后一个“syncId”来向服务器发送 AJAX 请求。然后,服务器以命令数组树响应以使该客户端保持最新状态。这是每秒执行一次,尚未导致任何网络带宽或延迟问题,但是我们下个月将在更大的客户端中安装一个系统,这可能会突破这种方法的限制,我想知道拥有服务器是否可行“将同步事件实时推送到客户端。

以上是我的系统检查要同步的事件的地方,其中 syncItem[0] 是自动增量 ID,syncItem[1] 是正在处理的事件的代码,syncItem[2] 是函数的参数。被调用的 httpGet 函数虽然不在此代码中,但它只是一个从服务器获取并返回响应的函数。

0 投票
1 回答
44 浏览

xmlhttprequest - Reverse-AJAX 请求的预期 HTTP 响应究竟是什么样的?

我正在尝试实现一个简单的 Web 服务(使用以太网屏蔽在 Arduino 板上运行),它可以通过 Reverse-AJAX 向订阅的客户端提供(推送)信息。Web 服务托管一个网页,该网页显示来自连接到该服务器板的(2D-LIDAR)传感器的信息。每当传感器输出变化(非常频繁和迅速)时,查看该页面的客户端应立即更新。对于这个应用程序 Reverse-AJAX / AJAX Push 似乎是选择的选项,但是我正在努力让服务器部分正常工作。这是我前面提到的网页中“收听”更新的内容:

我想保持 XmlHttpRequest 永远运行,并让它在服务器端传入一大块(JSON)数据时调用 processEvents 函数。但是我不确定服务器响应是什么,尤其是 HTTP 响应标头应该看起来像预期的那样工作。每当我让服务器发送这样的 HTTP 响应标头时

XmlHttpRequest 在接收到一个“块”数据后完成。我也尝试不使用“Content-Length”标头,但是“Content-Type: multipart/mixed;boundary=...”或“Transfer-Encoding: chunked”但两者都没有触发 processEvents,据说是因为浏览器正在等待完成的响应,无论这意味着什么。

因此,我正在寻找这样一个对 AJAX-Push 请求的 HTTP 响应的工作示例。HTTP 响应通常需要什么样的外观才能被无限期运行的 XmlHttpRequest 接受并在新数据到达时触发 processEvents?

顺便提一句。我使用 Firefox 64.0 尝试了这些东西。