问题标签 [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.
google-app-engine - 如何使用数据存储密钥作为 Channel API 客户端 ID?
我执行以下操作:
我得到了InvalidChannelClientIdError
。
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,但它不起作用。
google-app-engine - 相同的 GAE 通道令牌是否在选项卡之间工作?
通过 GAE 文档获取 Channel API,
一次只有一个客户端可以使用给定的客户端 ID 连接到通道,因此应用程序不能使用客户端 ID 进行扇出。换句话说,不可能为连接到多个客户端创建一个中央客户端 ID。
似乎与
将 create_channel() 返回的令牌视为机密。如果恶意应用程序获得了对令牌的访问权,它可能会侦听通过您正在使用的通道发送的消息。
他们怎么可能都是真的?但更重要的是,我计划为我的应用程序中的每个登录用户创建一个频道。现在,如果用户使用该应用打开一个新选项卡,我可以再次使用相同的令牌吗?为用户打开的每个标签创建一个频道的替代方案听起来很奇怪,更不用说昂贵了。
java - 调用 onMessage() 时无法使用 gwt-channel-api 触发和捕获事件
我正在使用 GWT + App 引擎通道 api,我想在收到消息时触发一个事件。我创建了一个接口 DataUpdateHanlder(扩展 EventHandler)和一个类 DataUpdateEvent(扩展 GwtEvent),并在 SimpleEventBus 中使用 addHandler(...) 和 fireEvent(...) 方法来注册处理程序并在收到消息时处理事件。问题是虽然事件被触发,但事件并没有到达它的处理程序( onDispatch(event) 没有发生任何事情)。
如果我只是创建和使用一个简单的接口,并且只是调用它的方法,那么一切正常(但是我必须为每个想要处理 onMessage(...) 的类创建一个对象列表)。我究竟做错了什么?
javascript - Chrome 扩展 - 实施渠道
我正在尝试使用在 Google App Engine (Python) 上运行的后端服务器实现一个通道,但我不确定如何为 Chrome 编写前端代码。我找到了一些代码,但无法测试,因为我正在等待我的合作伙伴编写后端代码。我想知道我是否正确实施了这一点。
我也不明白代码是怎么触发的?是什么触发了这个频道的创建?
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,都接收相同的消息)?如何防止它为单个用户创建多个频道?
google-app-engine - 通道 api GAE 通道打开后立即关闭
首先感谢 Moishe 提供的精彩 Channel API。我正在运行 Google Channel API 文档中给出的简单场景。我面临的问题是通道在打开后立即关闭。
我向 Feed 发出 GET 请求。
那是当我看到通道打开,然后收到未定义的消息->通道关闭->通道错误。
显然,我在这里忽略了一些东西。如果有人能指出这一点,将不胜感激。谢谢你的帮助。
最好的祝福
JR
google-app-engine - GAE Channel API 消息只向一个客户端广播?
我最近一直在尝试学习 Google App Engine 的 Channel API。
我试图制作一个简单的聊天应用程序,但我遇到了问题。
这通常是我所做的。
服务器打开一个静态通道:
客户端 js 通过以下方式连接到通道:
我没有使用 Google App Engines 用户。我不希望客户必须登录。
所以我的问题是,聊天应用程序并不能真正工作,只有一个客户可以加入频道。我知道每个频道规则有一个客户端 ID。那么如何在一个“聊天室”中支持多个客户呢?
python - 通道 API 存在未触发
我正在尝试使用 Channel API 中的 Presence 来处理断开/连接状态。
这是我的一些代码。
应用程序.yaml
主文件
Javascript
使用此代码,connnect
并且disconnect
不会在用户关闭浏览器或其他任何内容时触发。
这段代码有什么问题吗?
google-app-engine - 什么算作“渠道开放”?
在计费页面上,我看到“打开”一个频道需要 0.00001 美元。但这意味着什么?这是创建令牌的成本,还是在客户端使用它来打开套接字的成本?
如果是在客户端打开套接字的成本,这是否意味着创建令牌是免费的?
如果用户刷新页面呢?这会算作另一个开口,并再次收费吗?