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

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

内容简介:我在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


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

查看所有标签

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

Cascading Style Sheets 2.0 Programmer's Reference

Cascading Style Sheets 2.0 Programmer's Reference

Eric A. Meyer / McGraw-Hill Osborne Media / 2001-03-20 / USD 19.99

The most authoritative quick reference available for CSS programmers. This handy resource gives you programming essentials at your fingertips, including all the new tags and features in CSS 2.0. You'l......一起来看看 《Cascading Style Sheets 2.0 Programmer's Reference》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具