Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 使用GAE通道api优雅地处理封闭通道_Ajax_Google App Engine_Client Server_Channel Api - Fatal编程技术网

Ajax 使用GAE通道api优雅地处理封闭通道

Ajax 使用GAE通道api优雅地处理封闭通道,ajax,google-app-engine,client-server,channel-api,Ajax,Google App Engine,Client Server,Channel Api,我正在使用带有Channel API的Google App Engine创建一个web应用程序。这是我第一次尝试做类似Ajax的事情,我怀疑有一种标准技术可以解决我的问题,但我一直找不到 我的客户端程序将向服务器发送消息。如果无法发送消息,例如,如果通道关闭,消息会发生什么情况?如果客户机在平板电脑上,用户离开无线网络范围,该怎么办?对于我的应用程序,重新发送消息是至关重要的,但我不知道如何做到这一点 当通道关闭时,我知道我应该从服务器请求一个新的令牌,但我不知道我的客户端如何在不重新加载页面(

我正在使用带有Channel API的Google App Engine创建一个web应用程序。这是我第一次尝试做类似Ajax的事情,我怀疑有一种标准技术可以解决我的问题,但我一直找不到

我的客户端程序将向服务器发送消息。如果无法发送消息,例如,如果通道关闭,消息会发生什么情况?如果客户机在平板电脑上,用户离开无线网络范围,该怎么办?对于我的应用程序,重新发送消息是至关重要的,但我不知道如何做到这一点

当通道关闭时,我知道我应该从服务器请求一个新的令牌,但我不知道我的客户端如何在不重新加载页面(从而丢失数据)的情况下获取该令牌并打开连接。在给出的演示中,客户机需要知道令牌

var channel = new goog.appengine.Channel({{token}});
但我在别处读到,客户不需要知道代币那怎么办

此外,onerror和onclose回调函数似乎不会向我提供失败的消息,因此我如何知道需要重新发送什么

如果有人能把我推到正确的方向,我会非常感激。

< P>如果它是“关键的消息发怒”,那么你应该考虑本地客户端而不是浏览器。如果用户超出范围并关闭或重新加载浏览器窗口,那么数据肯定会丢失

  • “我不知道我的客户如何在不重新加载页面的情况下获取该令牌并打开连接”。使用-这将不会重新加载页面

  • 客户端需要令牌来打开通道。没办法

  • 套接字关闭时应调用onclose。若客户端失去连接,那个么在套接字超时和调用
    onclose
    之前可能需要一些时间