Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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
Javascript 如何使用AppEngine频道API编写类似facebook的浏览器通知?_Javascript_Python_Google App Engine - Fatal编程技术网

Javascript 如何使用AppEngine频道API编写类似facebook的浏览器通知?

Javascript 如何使用AppEngine频道API编写类似facebook的浏览器通知?,javascript,python,google-app-engine,Javascript,Python,Google App Engine,我正在编写一个Python AppEngine应用程序,需要在某些后端事件发生时向浏览器客户端发送通知。我正在使用通道API。我有两个问题:同一个选项卡中的多个页面加载和多个选项卡 多页面加载 我似乎无法在多个页面加载中重复使用同一频道。尝试重新连接到新页面上的频道会导致代码为0且无说明的错误。我目前正在数据存储中存储通道令牌,并将令牌注入页面。如何在同一选项卡内重复使用同一频道加载多个页面?建议使用iFrame。用iframe重新编码站点是我的最佳选择吗 选项卡 我的理解是,我需要为用户打开的

我正在编写一个Python AppEngine应用程序,需要在某些后端事件发生时向浏览器客户端发送通知。我正在使用通道API。我有两个问题:同一个选项卡中的多个页面加载和多个选项卡

多页面加载

我似乎无法在多个页面加载中重复使用同一频道。尝试重新连接到新页面上的频道会导致代码为0且无说明的错误。我目前正在数据存储中存储通道令牌,并将令牌注入页面。如何在同一选项卡内重复使用同一频道加载多个页面?建议使用iFrame。用iframe重新编码站点是我的最佳选择吗

选项卡

我的理解是,我需要为用户打开的每个选项卡生成一个客户端ID。如何为每个打开的选项卡生成不同的客户端ID?我可以在服务器上增加一个ID,这是最好的方法吗

提前感谢,


Aaron

我一直在研究DEV中奇怪的通道断开,看起来通道API在实时环境中比在开发环境中稳定得多

我创建了一个(有点)最小的AppEngine应用程序,它创建了一个跨页面加载持久化的通道。应用程序重用数据存储中的通道令牌

应用程序的代码如下所示: 该应用程序本身是实时的

如何使用它?

当您转到应用程序时,它将创建一个频道,然后将此频道重新用于您打开的表单的任何其他URL

然后,您可以转到,将消息发送到您打开的所有其他页面

所有页面都有1秒的延迟来测试通道的持久性。此1秒延迟将导致通道在dev中消失

希望这是有帮助的


Aaron

多页面加载:根据答案,您可以重复使用令牌,但是需要确保每次在一个页面上使用令牌(避免页面重新加载和使用散列片段的单个页面应用也是一个好主意)

制表符:生成客户端ID最简单的方法是创建一个随机字符串,例如