问题标签 [channel-api]

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 回答
656 浏览

html - HTML5 游戏,用户运动概念

我刚开始学习 HTML5 canvas 和 Google App Engine 的 Channel API。

我基于等轴测图构建了一个简单的游戏演示。现在我想实现角色移动,但我想知道我应该如何实现它。

当前演示:http ://cheukalex.appspot.com

这就是我认为的实现方式:

客户将处理移动。按下箭头键后,客户端将进行移动,然后将新坐标发送到服务器,然后将其广播给服务器上的其他用户以更新角色的位置。

我想到的问题:

  1. 如果我想实现“移动速度”怎么办,例如用户走五个方格的速度有多快。每次移动之间的延迟将在客户端完成。但这会安全吗?因为javascript很容易编辑。

  2. 我该如何处理延迟?如果我构建了一个简单的追逐标签游戏,我将如何同步用户这样的情况,一个人看起来他们“标记”另一个用户,但另一个用户看到他落后 1-2 个方格,不会发生?


编辑: @nycynik,你是对的,延迟大约是 200 毫秒。我在这里测试过。

延迟测试:http ://cheukalex.appspot.com/latency

那是它将获得的最小延迟。200ms 相当快。那么可能是我的代码很慢?

我是如何实现整个游戏的。

  1. 客户进入网站
  2. 服务器创建令牌,打开通道,在数据库中存储客户端数据(通道 id)
  3. ....一些逻辑
  4. 当客户端按下箭头键时,它会通知服务器客户端移动了哪个方向以及方向
  5. 服务器接收移动,执行逻辑,循环通过数据库(仅当前在线客户端),向所有客户端广播消息,以 json 格式向所有客户端发送地图上每个客户端的位置。然后客户“移动”。

这有什么问题吗?

0 投票
2 回答
405 浏览

python - GAE Channel API 安全吗?什么是底层实现?

我正在使用 GAE + Python 创建一个需要向客户端发送敏感数据实时更新的应用程序,我想知道App Engine Channel API是否安全。使用 HTTPS 就足够了,还是通道需要自己的安全协议?

另外, App Engine Channel API的底层实现是什么?Websockets,SSE?看起来它实际上只提供了一种通过通道从服务器到客户端的通信方式,然后让客户端使用标准的 HTTP 请求与服务器通信。

0 投票
1 回答
283 浏览

android - App Engine API Android 客户端

我正在寻找 android 的客户端版本,以便在我的应用程序上使用 appengine 通道 API。我见过其他一些人发展起来,但他们似乎都不是稳定的。有些人必须对 JavaScript 等使用 web 视图。我不想要这样的东西。

关于它的任何资源,或者我可以使用的任何明智的方法?

顺便说一句,我正在使用带有 python 的 appengine。

0 投票
1 回答
353 浏览

google-app-engine - 用户重新加载页面时未调用频道状态网址

我在 SDK 1.6.5,Python 2.5

当我启动我的开发服务器并在 127.0.0.1 访问我的频道测试页面时,一切正常 - 生成令牌并传递到前端,套接字打开,接收到客户端连接的 ping,我的应用程序向客户端发送一条消息,它被接收.

如果我重新加载页面:
- 我的日志中没有显示断开连接 ping(应该吗?)
- 生成新令牌(OK)
- 前端 js 记录使用新令牌打开的套接字(OK)
- 没有收到客户端连接的 ping
- 。 ..我的服务器端代码现在不知道这个套接字是打开的并且不知道如何向客户端发送消息

我是否误解了这里的正确流程?

如果我移动+重新加载页面,它是一样的。我必须重新启动开发服务器才能让一切恢复正常。

使用 djangoappengine:

0 投票
2 回答
821 浏览

javascript - 如何在 App Engine Channel API 中关闭控制台日志记录?

我已经实现了具有持久性的 Channel API。当我创建一个通道并连接套接字(这是在真实的应用程序上,而不是本地的 dev_appserver 上)时,Firebug 会因日志消息而发疯。我想关闭这些功能,以便查看我的 OWN 日志,但找不到任何有关如何禁用 Channel API 控制台日志记录的文档。

我可能做的与大多​​数人不同的一件事是我正在连接跨域... Channel API 支持(请注意流中的第一条消息...如果您可以查看该图片)

在此处输入图像描述

有人知道吗?


更新

我终于意识到我的代码正在创建两个通道并试图同时打开/连接它们......就是我收到大量消息的原因。我不是故意的(我知道规则: https ://developers.google.com/appengine/docs/python/channel/overview#Caveats )......这是一个错误......一旦我修复它,消息又回到了可管理的水平。

0 投票
0 回答
464 浏览

google-app-engine - Google Channel API /_ah/channel/connected/ 未调用,而 /_ah/channel/disconnected/ 是

使用 Google Channel API 我发现 /_ah/channel/disconnected/ 总是被及时调用,而 /_ah/channel/connected/ 不是。很多时候,我从来没有接到连接呼叫,然后接到服务器未收到通知的通道的断开呼叫!

(我看到有些人遇到了相反的问题,即断开连接延迟)

0 投票
2 回答
505 浏览

java - appengine ChannelFailureException 未在 dev 中引发

AppEngine 应该在向通道发送消息时出现错误时抛出 ChannelFailureException,例如当通道未连接时。

似乎开发服务器没有抛出此异常。它确实在控制台中显示警告:

此警告似乎是由:com.google.appengine.api.channel.dev.LocalChannelFailureException 生成的

但是,实际的异常(即com.google.appengine.api.channel.ChannelFailureException)没有被抛出。有没有人知道如何在开发中测试这个异常?

0 投票
2 回答
97 浏览

google-app-engine - symbian 和其他移动操作系统上的应用引擎通道 API?

频道 api 是否适用于 symbian?什么浏览器?有什么办法让它工作吗?
而且,出于好奇,如果它不起作用,为什么?它使用什么元素或技术阻止它在旧手机上工作(不是在谈论 Android 和 iOS)?

0 投票
1 回答
612 浏览

javascript - 是否可以使用 Channel API 从另一个域连接到我的 App Engine

我希望使用 Channel 从我的站点到 App Engine 的后端进行跨域通信。这可能吗?如果可以,怎么办?因为 Javascript API 中没有 domain 参数

0 投票
3 回答
865 浏览

java - onmessage Google App Engine (Java) 频道 API

我正在尝试使用 Google App Engine 的 Channel API。

JavaScript / JQuery:

问题是 alert(message) 没有触发。我的代码中有什么好运的?

"\\{\\{ token \\}\\}"我对服务器端和channel = new goog.appengine.Channel('{{ token }}')javascript中的一些示例感到困惑。

它包含在什么中{{ }}