V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
lynncui

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

  •  
  •   lynncui · Dec 7, 2010 · 5770 views
    This topic created in 5622 days ago, the information mentioned may be changed or developed.
    断断续续的自学了一下前端的知识,就做了这么一个东西,算是我的第一个作品了,我之前没做过网站的,所以开发出来还挺高兴的,网址是 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 replies    1970-01-01 08:00:00 +08:00
    keakon
        1
    keakon  
       Dec 7, 2010
    channel api没法即时同步的,因为它是基于HTTP请求驱动,而不能自发驱动的。

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

    当然,这对用户来说完全没有区别,只是我对没有提供真正可控的长连接比较残念=。=
    lynncui
        2
    lynncui  
    OP
       Dec 7, 2010
    @keakon 我是这方面的菜鸟,因为我今天刚看了channel api的doc,并做了一个聊天室来演练了一下,webclient的同步的确是基于http的post的,但是server不是通过socket的push方式给web client的么,为啥还不能即时同步呢,另外什么是自发驱动我也不太理解,希望可以解答一下谢谢了。
    keakon
        3
    keakon  
       Dec 7, 2010
    聊天室是“有人说话”这个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
       Dec 7, 2010
    @keakon 用这个来做twitter的信息同步肯定是不行的,即使不是gae,是自己完全可控的服务器,对于一些followers很多的人来说,同步也是很难完成的,因为这牵扯到很强大的数据结构和算法问题,单纯通过api基本是不可能完成的。其实我所说的同步并不是特指twitter web client,是说这个channel api在一些自己的应用中能发挥到不错的同步效果,聊天室是一个例子。另外你所说的可控的长连接是不是指守护后台的cgi?现在1.4版本似乎已经支持3个永久守护后台的cgi,而没有30秒限制了。
    keakon
        5
    keakon  
       Dec 7, 2010
    那个不叫守护进程,响应请求仍然存在30秒限制,你无法让它一直运行一个任务

    只有cron和task queue可以执行10分钟,但是执行它的instance无法和响应用户请求的instance交互
    lynncui
        6
    lynncui  
    OP
       Dec 7, 2010
    @keakon 最新的1.4不是支持3个永久运行的进程?我再去看看文档先
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2846 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 496ms · UTC 15:22 · PVG 23:22 · LAX 08:22 · JFK 11:22
    ♥ Do have faith in what you're doing.