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

google-app-engine - 如何使用数据存储密钥作为 Channel API 客户端 ID?

我执行以下操作:

我得到了InvalidChannelClientIdError

0 投票
2 回答
321 浏览

java - Appengine Java & GWT - 无法重新创建和打开通道

我在 GWT 中使用带有 gwt-gae-channel 库(v. 0.4)的 App 引擎 Channel API,并且我正在尝试在过期后测试通道的重新创建(即使用代码 401 调用 onError)。
测试是:
- 使用 GWT RPC 方法创建一个通道(clientID= 和 expire = 1 分钟)并获取所需的令牌:createTestChannel(useremail)。
- 调用 ChannelFactory.createChannel(token, new ChannelCreatedCallback() { ... }) 和 channel.open(new MySocketListener(){...})
- 当 onError(...) 被调用时(通道过期)我尝试再次调用 createTestChannel(useremail) (以获取相同 clientID 的新令牌)并打开一个频道,但我总是得到 onError() 和 onClose() 调用。
如果我刷新页面或使用相同的代码打开一个新选项卡,第一个频道创建工作正常,但在每个频道到期后,我无法重新创建它们。我也尝试了另一个clientID,但它不起作用。

0 投票
1 回答
481 浏览

google-app-engine - 相同的 GAE 通道令牌是否在选项卡之间工作?

通过 GAE 文档获取 Channel API,

一次只有一个客户端可以使用给定的客户端 ID 连接到通道,因此应用程序不能使用客户端 ID 进行扇出。换句话说,不可能为连接到多个客户端创建一个中央客户端 ID。

似乎与

将 create_channel() 返回的令牌视为机密。如果恶意应用程序获得了对令牌的访问权,它可能会侦听通过您正在使用的通道发送的消息。

他们怎么可能都是真的?但更重要的是,我计划为我的应用程序中的每个登录用户创建一个频道。现在,如果用户使用该应用打开一个新选项卡,我可以再次使用相同的令牌吗?为用户打开的每个标签创建一个频道的替代方案听起来很奇怪,更不用说昂贵了。

0 投票
0 回答
153 浏览

java - 调用 onMessage() 时无法使用 gwt-channel-api 触发和捕获事件

我正在使用 GWT + App 引擎通道 api,我想在收到消息时触发一个事件。我创建了一个接口 DataUpdateHanlder(扩展 EventHandler)和一个类 DataUpdateEvent(扩展 GwtEvent),并在 SimpleEventBus 中使用 addHandler(...) 和 fireEvent(...) 方法来注册处理程序并在收到消息时处理事件。问题是虽然事件被触发,但事件并没有到达它的处理程序( onDispatch(event) 没有发生任何事情)。

如果我只是创建和使用一个简单的接口,并且只是调用它的方法,那么一切正常(但是我必须为每个想要处理 onMessage(...) 的类创建一个对象列表)。我究竟做错了什么?

0 投票
1 回答
220 浏览

javascript - Chrome 扩展 - 实施渠道

我正在尝试使用在 Google App Engine (Python) 上运行的后端服务器实现一个通道,但我不确定如何为 Chrome 编写前端代码。我找到了一些代码,但无法测试,因为我正在等待我的合作伙伴编写后端代码。我想知道我是否正确实施了这一点。

我也不明白代码是怎么触发的?是什么触发了这个频道的创建?

0 投票
1 回答
864 浏览

google-app-engine - Google App Engine Channel Token 和 Client ID 关系

在 Channel API 的 Google App Engine 文档中,声明“一次只有一个客户端可以使用给定的客户端 ID 连接到通道”。

相反,当我尝试创建具有相同客户端 ID 的通道时,会消耗一个新通道。换句话说,当我为 ClientID "user_one" 调用 creat channel apichannelService.createChannel("user_one");十次时,将创建具有 10 个不同令牌字符串的 10 个不同通道,并且当我向 "user_one" 发送消息时channelService.sendMessage(new ChannelMessage("user_one", message));,不同设备上的所有十个客户端,会收到消息!

你会如何描述这种情况?如何从这种机制中受益(一个具有不同通道的 clientID,都接收相同的消息)?如何防止它为单个用户创建多个频道?

0 投票
1 回答
388 浏览

google-app-engine - 通道 api GAE 通道打开后立即关闭

首先感谢 Moishe 提供的精彩 Channel API。我正在运行 Google Channel API 文档中给出的简单场景。我面临的问题是通道在打开后立即关闭。

我向 Feed 发出 GET 请求。

那是当我看到通道打开,然后收到未定义的消息->通道关闭->通道错误。

显然,我在这里忽略了一些东西。如果有人能指出这一点,将不胜感激。谢谢你的帮助。

最好的祝福

JR

0 投票
1 回答
520 浏览

google-app-engine - GAE Channel API 消息只向一个客户端广播?

我最近一直在尝试学习 Google App Engine 的 Channel API。

我试图制作一个简单的聊天应用程序,但我遇到了问题。

这通常是我所做的。

服务器打开一个静态通道:

客户端 js 通过以下方式连接到通道:

我没有使用 Google App Engines 用户。我不希望客户必须登录。

所以我的问题是,聊天应用程序并不能真正工作,只有一个客户可以加入频道。我知道每个频道规则有一个客户端 ID。那么如何在一个“聊天室”中支持多个客户呢?

0 投票
1 回答
754 浏览

python - 通道 API 存在未触发

我正在尝试使用 Channel API 中的 Presence 来处理断开/连接状态。

这是我的一些代码。

应用程序.yaml

主文件

Javascript

使用此代码,connnect并且disconnect不会在用户关闭浏览器或其他任何内容时触发。

这段代码有什么问题吗?

0 投票
1 回答
119 浏览

google-app-engine - 什么算作“渠道开放”?

计费页面上,我看到“打开”一个频道需要 0.00001 美元。但这意味着什么?这是创建令牌的成本,还是在客户端使用它来打开套接字的成本?

如果是在客户端打开套接字的成本,这是否意味着创建令牌是免费的?

如果用户刷新页面呢?这会算作另一个开口,并再次收费吗?