用 Meteor 克隆了一个实时的 V2EX - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Meteor Official Site
http://www.meteor.com/
Follow @meteorjs on Twitter
chuangbo
V2EX    Meteor

用 Meteor 克隆了一个实时的 V2EX

  •  
  •   chuangbo 2012-09-19 18:42:48 +08:00 8308 次点击
    这是一个创建于 4826 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我很喜欢 V2EX,一直想在团队内部搭建一个,方便积累知识,但是 @Livid 迟迟不开源 PB3,也因为程序员杂志的一篇约稿,我继续实践 Meteor,山寨了 V2EX 的一小部分功能。

    只实现了节点、主题、回复功能,唯一的改动就是支持了单主题多节点(感谢 Mongodb),当然还有实时(感谢 Meteor

    因为是我们内部使用的,没有实现帐号系统,只能用 DNSPod 帐号登录。

    相比上次的分享的是,Meteor 修复了不少 Bug,写起来不需要那么多 Hack 了,但是依然存在许多问题,比如刷新偶尔非常慢,数据很久都载入不出来,但是删掉右侧栏就好了。。

    大家感兴趣可以试试,有任何关于 Meteor 的问题我都很乐意与大家讨论。

    http://dnspod-bbs.meteor.com/t/cf0737d1-e4b6-4409-8c30-c4c595f9f235

    最后,感谢 @Livid 和他的 V2EX!!!!
    17 条回复    1970-01-01 08:00:00 +08:00
    chuangbo
        1
    chuangbo  
    OP
       2012-09-19 18:58:55 +08:00
    如果担心帐号密码安全,可以使用加密链接,全程都是 SSL 加密的

    https://dnspod-bbs.meteor.com/
    lyping
        2
    lyping  
       2012-09-19 19:17:38 +08:00
    用的什么技术呢?会开源么?
    keakon
        3
    keakon  
       2012-09-19 19:22:03 +08:00
    刷新整个网页的体验不太好,弄成局部的吧……
    chuangbo
        4
    chuangbo  
    OP
       2012-09-19 19:23:47 +08:00
    @lyping http://www.meteor.com ,一个非常新颖的 Full Stack 开发框架
    我在这里写过一篇介绍 /t/33961
    chuangbo
        5
    chuangbo  
    OP
       2012-09-19 19:24:26 +08:00
    @lyping 这就去开源,期待有人 Fork 出带帐号的版本
    chuangbo
        6
    chuangbo  
    OP
       2012-09-19 19:28:08 +08:00
    @keakon 是的,应该是 Reactive 的问题,应该是把模板弄分散一些,尽量减少重绘的范围。
    我们网站用 Backbone 处理这样的事情就不会闪,我猜测是 Meteor 重绘逻辑有问题,他可能是一上来就先删掉,完了再重绘上去。我们的实际经验是,如果在重绘前的最后一刻再删掉原始Dom,浏览器快到根本看不到闪烁。
    lyping
        7
    lyping  
       2012-09-19 19:51:14 +08:00
    配合 http://dnspod-docs.meteor.com/ 应该可以给小团队用用了。
    plan9
        8
    plan9  
       2012-09-19 20:06:27 +08:00
    @chuangbo 查了一下,meteor貌似用了websocket了吧,是不是有好多浏览器运行不了?
    lemolee
        9
    lemolee  
       2012-09-19 20:58:41 +08:00
    Vanilla forums 其实也挺好的,插件很多,用起来还是不错的,比如 http://www.howvps.com
    leecade
        10
    leecade  
       2012-09-20 00:50:00 +08:00
    @chuangbo

    刷新 https://github.com/chuangbo 未找到开源项目
    chuangbo
        11
    chuangbo  
    OP
       2012-09-20 17:52:56 +08:00
    @keakon 解决了刷新闪烁的问题,没有分离模板,用了 Template.myTemplate.preserve 和 {{#onstant}},现在刷新依然不是局部刷新,但是视觉上已经不闪烁了,如果有性能问题,就需要看看怎么修改为局部刷新了。

    目前的问题是,第一次打开页面,会反复 Load 很多次才是最后的结果,这个肯定是 Meteor 的问题了。我在想想怎么做一个 Loading,像 @loddit 做的那样 /t/40373 ,我看了他的代码还没找到实现的方法
    ryon
        12
    ryon  
       2012-09-20 18:10:00 +08:00
    如果不考虑语言的话,可以考虑下anwsion:)我们也在用dnspod的服务
    Livid
        13
    Livid  
    MOD
    PRO
       2012-09-20 18:15:50 +08:00
    Good!
    chuangbo
        14
    chuangbo  
    OP
       2012-09-20 19:03:44 +08:00   1
    @lyping @leecade 已经开源了 https://github.com/chuangbo/meteor-bbs

    @Livid 以前的克隆者最后都和你吵的不可开交,看到这个回复我实在太开心了。帮忙看看 Readme 里面有什么不恰当的地方。谢谢你和PB3和V2EX!
    Livid
        15
    Livid  
    MOD
    PRO
       2012-09-20 19:04:30 +08:00
    刚刚在设备上试了一下(iOS 6 / iPhone 4),首页没有帖子?
    Livid
        16
    Livid  
    MOD
    PRO
       2012-09-20 19:07:53 +08:00
    @chuangbo 我不记得我和任何人吵过。只是对有些用了别人的东西却决不承认的项目觉得恶心而已。

    开源一个东西并且一直维护下去是一件很有难度的事情。

    如果不仅维护下去,甚至还能让项目继续发展的话,目前在中文项目几乎没有成功先例,也不知道是为什么。

    为开源产品设定一个大部分用户都会需要的 feature set 恐怕是最难的部分。
    chuangbo
        17
    chuangbo  
    OP
       2012-09-20 19:19:24 +08:00
    @Livid 第一次打开比较慢,因为 Meteor 服务器不快,并且要下载很多数据缓存到浏览器。如 #11 所说,我还没有找到加 Loading 的方法。

    是啊,维护很难,让项目继续在社区的帮助下生长,更难。但是你成功的运营了 V2EX,难道这比运营 PB 的开发者社区还难吗 (_`)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1660 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 16:17 PVG 00:17 LAX 08:17 JFK 11:17
    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