AppEngine Channel API – 检查频道是否仍处于打开状态的最佳方式(服务器端)

栏目: 后端 · 发布时间: 5年前

内容简介:我在AppEngine上构建了社交网络/约会类型应用程序,目前正在添加基于Channel API构建的聊天.但是,我遇到的问题是用户可能会在聊天过程中重新加载或导航到新页面(就像在Facebook中一样).这意味着服务器不容易知道它是否应该为给定客户端生成新的通道ID令牌,或者是否已经为给定客户端分配了通道令牌.如果有一种方法可以检查(服务器端)特定客户端是否已打开某个频道,那将非常有用.例如,如果我为客户端“Jack”分配了一个“Jack-Jan-21-2010”的频道ID,那么我希望能够在服务器端检查是

我在AppEngine上构建了社交网络/约会类型应用程序,目前正在添加基于Channel API构建的聊天.但是,我遇到的问题是用户可能会在聊天过程中重新加载或导航到新页面(就像在Facebook中一样).这意味着服务器不容易知道它是否应该为给定客户端生成新的通道ID令牌,或者是否已经为给定客户端分配了通道令牌.

如果有一种方法可以检查(服务器端)特定客户端是否已打开某个频道,那将非常有用.例如,如果我为客户端“Jack”分配了一个“Jack-Jan-21-2010”的频道ID,那么我希望能够在服务器端检查是否已经有一个与该ID相关联的频道“杰克-JAN-21-2010\” .通过观察onerror()和onclose()回调可以在客户端跟踪(有点),但是我看不到任何服务器端允许我检查与给定ID关联的通道是否是已经开放了.

有没有人知道在使用AppEngine Channel API的同时检查(服务器端)是否已打开频道的智能方法?

第1部分:解决您的问题

如果您确实需要跟踪客户端连接,请参阅下面的第2部分,但我不确定您的问题是否要求您解决问题.

让我看看我是否可以回复你的问题:你正在编写一个聊天应用程序,但这是一个不完全是AJAX的网站(就像gmail一样);该网站包含页面导航,您可能需要在用户点击指向其他页面的链接后重新设置您的频道.当用户导航时,将呈现新页面,并且您希望避免在该点获取新标记;您希望重用具有相同客户端ID的现有令牌和通道.

如果这是正确的,我有两个备用解决方案,一个简单但用户体验不佳,一个更棘手,但最终结果更顺畅.

>保留cookie中的令牌.重新渲染页面时,只需使用cookie中的标记,而不是再次调用channel.create_channel.当令牌过期时,您将获得一个错误回调,就像用户留在原始页面上一样;此时,再次调用channel.create_channel.这个问题是由于Comet连接的性质,重新连接可能很慢(在坏情况下最多10秒或更长时间).

>在iframe中包裹与聊天无关的整个网站.将频道创建代码和UI放在外部iframe中.这样,您不必在每次用户导航时重新连接.这可以避免导航停机.请注意,orkut使用这种技术,浮动div,因为少量的Firebug调查将揭示.

第2部分:您的功能请求

如果结果我误解了你真的需要跟踪客户端连接:

现在没有内置的方法来检查客户端是否已连接到客户端ID标识的通道.

但是,我现在正在努力添加“在线状态”(在聊天意义上),这样当您的应用程序连接或断开与使用给定客户端ID创建的通道时,您的应用程序可以注册以获取帖子.您也可以“探测”状态,查询给定的客户端ID是否已连接(仍在处理此部分的详细信息).

请注意,这不是基于令牌的,而是基于客户端ID.

我还没有明确的发布日期,但正如我所说,我正在积极研究它.

在此期间,您可以使用来自客户端的心跳HTTP请求返回到您的应用程序,该应用程序每隔一分钟就会说“嘿,我还在这里”.您需要运行某些任务,例如每2分钟运行一次,并将未签入的任何客户端标记为非活动状态,并且您需要将此数据存储在某个位置.

翻译自:https://stackoverflow.com/questions/4804129/appengine-channel-api-best-way-to-check-if-a-channel-is-still-open-server-sid


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

绝对价值

绝对价值

[美] 伊塔马尔·西蒙森 艾曼纽·罗森 / 钱峰 / 中国友谊出版公司 / 2014-7 / 45.00元

绝对价值指的是经用户体验的产品质量,即使用某件产品或者享受某项服务的切实感受。 过去,消费就像是押宝。一件商品好不好,一家餐馆的环境如何,没有亲身体验过消费者无从得知,只能根据营销人员提供的有限信息去猜测。品牌、原产地、价位、广告,这些重要的质量线索左右着消费者的选择。 然而,互联网和新兴科技以一种前所未有的速度改变了商业环境。当消费者可以在购买前查看到交易记录和消费者评价,通过便捷的......一起来看看 《绝对价值》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具