我编写的搭建于Google App Engine的Twitter Web Client - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
lynncui
V2EX    Google App Engine

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

  •  
  •   lynncui 2010-12-07 01:44:22 +08:00 5434 次点击
    这是一个创建于 5427 天前的主题,其中的信息可能已经有所发展或是发生改变。
    断断续续的自学了一下前端的知识,就做了这么一个东西,算是我的第一个作品了,我之前没做过网站的,所以开发出来还挺高兴的,网址是 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是越来越成熟了。
    6 条回复    1970-01-01 08:00:00 +08:00
    keakon
        1
    keakon  
       2010-12-07 01:55:21 +08:00
    channel api没法即时同步的,因为它是基于HTTP请求驱动,而不能自发驱动的。

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

    当然,这对用户来说完全没有区别,只是我对没有提供真正可控的长连接比较残念=。=
    lynncui
        2
    lynncui  
    OP
       2010-12-07 02:05:45 +08:00
    @keakon 我是这方面的菜鸟,因为我今天刚看了channel api的doc,并做了一个聊天室来演练了一下,webclient的同步的确是基于http的post的,但是server不是通过socket的push方式给web client的么,为啥还不能即时同步呢,另外什么是自发驱动我也不太理解,希望可以解答一下谢谢了。
    keakon
        3
    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
        4
    lynncui  
    OP
       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
        5
    keakon  
       2010-12-07 10:11:01 +08:00
    那个不叫守护进程,响应请求仍然存在30秒限制,你无法让它一直运行一个任务

    只有cron和task queue可以执行10分钟,但是执行它的instance无法和响应用户请求的instance交互
    lynncui
        6
    lynncui  
    OP
       2010-12-07 13:12:34 +08:00
    @keakon 最新的1.4不是支持3个永久运行的进程?我再去看看文档先
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5085 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:21 PVG 17:21 LAX 02:21 JFK 05:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86