我编写的搭建于Google App Engine的Twitter Web Client

2010-12-07 01:44:22 +08:00
 lynncui
断断续续的自学了一下前端的知识,就做了这么一个东西,算是我的第一个作品了,我之前没做过网站的,所以开发出来还挺高兴的,网址是 tweetsfun2[dot]appspot
采取了使用google帐号登录然后oauth认证绑定token码的方式,因为我认为google帐号作为一个open id足够安全,第三方只能获取到邮件地址的信息。
使用google code管理源码,地址在http://code.google.com/p/tweetsfun/ 不过最新版本可能未来得及更新。

ps google appengine的sdk 1.4有一个channel api,可以用于即时同步web client的数据,可以用来做些游戏网站和更多互动等,感觉gae是越来越成熟了。
5080 次点击
所在节点    Google App Engine
6 条回复
keakon
2010-12-07 01:55:21 +08:00
channel api没法即时同步的,因为它是基于HTTP请求驱动,而不能自发驱动的。

能做到最好的方式仅仅是用task queue来驱动,但毕竟过于麻烦了。

当然,这对用户来说完全没有区别,只是我对没有提供真正可控的长连接比较残念=。=
lynncui
2010-12-07 02:05:45 +08:00
@keakon 我是这方面的菜鸟,因为我今天刚看了channel api的doc,并做了一个聊天室来演练了一下,webclient的同步的确是基于http的post的,但是server不是通过socket的push方式给web client的么,为啥还不能即时同步呢,另外什么是自发驱动我也不太理解,希望可以解答一下谢谢了。
keakon
2010-12-07 02:17:27 +08:00
聊天室是“有人说话”这个POST请求来驱动server,然后server才会push message给所有人

而如果是Twitter客户端,说话者不一定是客户端的用户,可能是他关注的所有人,而这些信息是存在于Twitter网站上的,他们说话并不会驱动你的server

因此你只能让server每隔一段时间去urlfetch一次Twitter,但是这个也需要请求来驱动,于是只能让用户每隔一分钟pull一下sever,然后server去获取结果并push用户了

顺便把我的聊天室也放出来:
http://chat.latest.gaejava.appspot.com/
lynncui
2010-12-07 02:34:59 +08:00
@keakon 用这个来做twitter的信息同步肯定是不行的,即使不是gae,是自己完全可控的服务器,对于一些followers很多的人来说,同步也是很难完成的,因为这牵扯到很强大的数据结构和算法问题,单纯通过api基本是不可能完成的。其实我所说的同步并不是特指twitter web client,是说这个channel api在一些自己的应用中能发挥到不错的同步效果,聊天室是一个例子。另外你所说的可控的长连接是不是指守护后台的cgi?现在1.4版本似乎已经支持3个永久守护后台的cgi,而没有30秒限制了。
keakon
2010-12-07 10:11:01 +08:00
那个不叫守护进程,响应请求仍然存在30秒限制,你无法让它一直运行一个任务

只有cron和task queue可以执行10分钟,但是执行它的instance无法和响应用户请求的instance交互
lynncui
2010-12-07 13:12:34 +08:00
@keakon 最新的1.4不是支持3个永久运行的进程?我再去看看文档先

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/5518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX