问题标签 [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 投票
2 回答
3481 浏览

ajax - 在前端和后端之间同步数据

我们正在开发一款基于浏览器的社交游戏,它是一款MMORPG游戏。我们使用 html/javascript/css 作为前端技术(与 flash 相比)。当用户第一次加载我们的游戏时,会下载一堆文件(外部 js/css)并且会请求几个 ajax 调用。除非用户手动刷新页面,否则不会再次加载整个页面。我们创建一个 js 对象来存储用户特定的数据,如现金、级别等。并且在用户即将进行的操作过程中可能会发生变化。所以我们需要从后端同步数据。一个特殊的问题是用户的数据也可以被动更新(由其他用户),这可能发生在其他用户的战斗中。所以我的问题是如何以及何时同步?

到目前为止,我们经历了两个阶段,1)当用户点击标签(在 html 中显示/隐藏 div)或可能的操作(比如打/买东西)时,我们每次调用 ajax 请求从数据库中获取新数据. 2) 与1) 类似,但我们只是添加了一个代理来指示用户的数据是否更改,以减少无用的数据库查询。ajax 调用将首先转到代理。

对于 1) 我们可能有 70%+ 无用的 ajax 调用和数据库查询

2)我们可能有 70%+ 无用的 ajax 调用

现在我们使用 2) 的方法。但我不认为这是最好的解决方案,因为我们仍然有 70%+ 无用的 ajax 调用。那么这个用例有更好的解决方案吗?


解释

无用的ajax调用:由于两次ajax调用之间的间隔,用户数据可能根本没有变化。

0 投票
1 回答
210 浏览

webserver - Ajax 推送引擎

我正在研究为事件驱动的 Web 应用程序寻找方法的方法,在该应用程序中,服务器可以将数据推送到网页。我可以使用 APE 吗?如果是这样,我该如何使用它和一些资源?

谢谢你!!

0 投票
1 回答
1962 浏览

apache - AJAX 推送引擎:无法联系 APE 服务器

我正在尝试在我的 Mac 上设置 AJAX 推送引擎 (APE),运行 Mac OS X 10.6.4 和 Apache 2.2.14

当我运行 APE 服务器时,输出如下:

ape.conf看起来像:

...文件中的虚拟主机内容httpd-vhosts.conf如下所示:

当我在 中运行测试文件时/Tools/Check/index.html,我通过了测试,直到我到达 APE 服务器,我得到以下错误:

关于如何解决这个问题的任何想法?

谢谢。

0 投票
2 回答
1302 浏览

chat - Ajax Push Engine (Comet) 和持久化聊天 - 如何实现?

我们正在开发一款在线实时网页浏览器游戏,我们选择使用 APE Server。我们有一个来自我们之前项目的游戏内聊天系统,我们希望将其移植到 APE。由于我们对 APE 有点陌生,我们不确定哪种方案会更好,或者可能根本不适用。

现在聊天的工作方式如下: - 聊天有 4 个房间,用户在其中谈论某些特定的游戏方面(贸易、战斗等),当用户完全重新加载页面时,他/她会从 db(数据库)获取最新的 30 条消息已打开的聊天室 - 聊天室定期发出 AJAX 请求以查看任何聊天室中是否有新消息,但实际最新消息仅下载当前打开的聊天室。为了让事情变得更加复杂,我们将聊天分成不同的语言 - 用户只收到他们偏好 cookie 中语言的消息。他们可以随时更改它,然后他们会收到其他语言的消息。

现在我们正在转向完全基于 AJAX 的系统,根本不需要重新加载页面,我们将自动最小化请求以从 db.xml 获取最新的 30 条消息。

但困难的部分是 - 如何组织将消息存储在数据库中并通过 APE 发送给用户?

我们考虑了以下选项: - 用户向 PHP 脚本发送消息,它转到 db,然后 PHP 通过 inlinepush 将消息提交给 APE(根据文档,inlinepush 仅支持一个通道,我们不确定它将如何工作然后)然后 APE 将消息发送给所有用户(看起来,我们需要在 APE 服务器上存储用户首选语言,因此消息只发送给适当的用户);- 用户将消息发送到APE Server,APE Server将消息传递给其他同种语言的用户,同时调用PHP脚本将消息存储到db;- 用户将消息发送到APE Server,APE Server 将消息传递给相同语言的其他用户,并使用APE 自己的Mysql 能力将消息存储到db。

一方面,我们更喜欢通过 PHP 存储数据,因为我们有一个非常强大的数据库访问库,并且我们希望避免将其移植到 APE 和 Javascript 来存储聊天消息(而且我们也没有使用服务器端 JS 的经验)。但是如果它会带来一些好的优势,那么我们当然会使用APE自己的Mysql。

我们也担心,APE 是否能够按用户的语言过滤所有用户并仅将消息发送给适当的用户?APE 如何处理 cookie?

此外,APE 中基于子域的频道设置起来似乎有点尴尬,但我们还没有找到更好的选择。

0 投票
3 回答
6677 浏览

php - 使用 hmac 保护 javascript 客户端

我正在研究保护我正在开发的 javascript 应用程序的方法。该应用程序是一个聊天客户端,它使用 APE(Ajax 推送引擎)作为后端。

目前,任何人都可以访问该页面并向 APE 服务器发出 GET/POST 请求。我只想为注册用户提供聊天客户端,并且我想确保只接受他们的请求。我可以使用 PHP 的用户名/密码身份验证来为用户提供页面。但是一旦他们有了页面,有什么可以阻止他们修改 javascript 或让它落入坏人之手?

这种保护客户端/服务器应用程序的方法看起来很有前途:http ://abhinavsingh.com/blog/2009/12/how-to-add-content-verification-using-hmac-in-php/

我有另一个消息来源说这是 javascript 客户端的理想选择,因为它不依赖于发送私钥。但这怎么可能呢?根据上面的教程,客户端需要提供私钥。这似乎不太安全,因为拥有 javascript 的任何人现在都拥有该用户的私钥。据我了解,它会像这样工作:

  1. 用户使用用户名和密码登录
  2. PHP 验证用户名和密码,查找用户的私钥并将其插入到 javascript
  3. Javascript 提供签名(使用私钥),以及所有 APE 请求的公钥
  4. APE 将计算的签名与接收到的签名进行比较,并决定是否处理请求。

如果 javascript 应用程序需要知道私钥,这如何安全?

谢谢您的帮助!

0 投票
1 回答
409 浏览

python - 来自 APE 服务器模块的 POST 请求问题

我使用 Ajax Push Engine 作为推送引擎,使用 Django 作为主站点。我编写了服务器模块,当新用户使用 Http 模块加入频道时,它必须将请求发送到我的基于 Django 的应用程序。我的基于 Django 的项目在 local.jjjbbb.org 上的本地计算机上运行。

但是这段代码不起作用,请求没有收到。当我将 url 更改为其他任何内容(例如 www.google.com 或 localhost)时,一切正常,我得到了结果。但是当我尝试向我的应用程序发送请求时,请求不起作用。只有当我尝试从服务器端发送请求时,才会出现这个问题,当我使用 jQuery 从客户端发送时,一切正常。

为什么我不能从服务器端向我的域发送 POST 请求?

0 投票
1 回答
1144 浏览

php - 在线纸牌游戏+PHP聊天

什么是用 PHP 制作具有聊天功能的在线纸牌游戏的好方法?

一位同事提到了 Ajax Push Engine ( APE ),但 APE 的最新版本是从 2009 年开始的。另一方面, Orbited似乎不适用于 PHP。

有没有一个可行的替代这两个与 PHP 一起工作的?

0 投票
2 回答
303 浏览

php - AJAX Push 必须支付什么费用才能使网页更具交互性?

(抱歉,如果该主题的标题不正确,如果有人帮助我使其与我在下面解释的内容更加相关,将不胜感激)。

最近我对了解 AJAX 推送及其所有基本思想非常感兴趣。我知道 AJAX 推送技术使网页在服务器端更具交互性,但在所有流畅的交互动作背后,显然有一些“艰苦的工作”在舞台后面,无论是在实现上还是在它如何处理资源方面。

所以简而言之,让我们忘记实现,我需要有人向我解释 AJAX 推送在服务器连接方面的工作方式,如何(或多少)资源使用,或者在实现这个时应该考虑的其他一些方面方法。

我没有做太多的研究,所以你有任何与此相关的文件,我很乐意阅读。

0 投票
1 回答
309 浏览

asp.net - 如何在通道上向特定客户端发送 Ajax Push?

我想使用 Ajax Push 机制将数据发送到通道上的特定客户端。这是我的设计:我说有 10 个客户订阅了频道 #1,还有 10 个客户订阅了频道 #2。我想在我的数据库中更新某些特定参数时发送 Ajax Push。我想将它发送给频道 #1 上的客户 #7。在 Ajax Push 中,我知道我可以将 Push 发送给 Channel #1 的所有订阅者。有什么方法可以将 Ajax Push 发送到频道 #1 上的唯一客户端 #7?谢谢, Thothathri

0 投票
2 回答
293 浏览

ajax - Ajax Push - 要考虑什么?

我正在研究“Comet”、“Ajax Push”或“Reverse Ajax”,并找到了 APE: http: //www.ape-project.org。看起来很有希望。有这方面经验的吗?我应该知道的任何优点和缺点?

另外,还有其他我应该考虑的引擎吗?