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 · 5018 次点击
    这是一个创建于 5099 天前的主题,其中的信息可能已经有所发展或是发生改变。
    断断续续的自学了一下前端的知识,就做了这么一个东西,算是我的第一个作品了,我之前没做过网站的,所以开发出来还挺高兴的,网址是 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   ·   实用小工具   ·   2544 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:25 · PVG 23:25 · LAX 07:25 · JFK 10:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.