V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wt_xp
V2EX  ›  程序员

写聊天室网站,用哪个语言比较有优势?

  •  
  •   wt_xp · 2011-12-13 20:30:52 +08:00 · 8070 次点击
    这是一个创建于 4727 天前的主题,其中的信息可能已经有所发展或是发生改变。
    写一个网站聊天室那种程序,是用哪种语言写比较有优势?
    python,java,Ruby on Rails?
    37 条回复    1970-01-01 08:00:00 +08:00
    likuku
        1
    likuku  
       2011-12-13 20:36:48 +08:00
    开发者最熟练的语言。
    icyflash
        2
    icyflash  
       2011-12-13 20:51:44 +08:00
    node.js
    SErHo
        3
    SErHo  
       2011-12-13 20:58:34 +08:00
    Ruby on Rails不是一个语言。
    santa
        4
    santa  
       2011-12-13 21:11:49 +08:00
    @icyflash 见过一个这么做的人,不过效率上还是有问题吧
    1212e
        5
    1212e  
       2011-12-13 21:13:54 +08:00
    那也要看是什么优势... 要简单的话应该是php吧?
    VYSE
        6
    VYSE  
       2011-12-13 21:16:33 +08:00
    HTML5 WEBSOCKET
    mywaiting
        7
    mywaiting  
       2011-12-13 21:17:37 +08:00
    那必须是NodeJS啊!
    jerry
        8
    jerry  
       2011-12-13 21:27:12 +08:00
    erlang
    ayanamist
        9
    ayanamist  
       2011-12-13 21:54:09 +08:00
    这个还真是NodeJS……
    args
        10
    args  
       2011-12-13 21:59:18 +08:00
    nodejs.....
    aveline
        11
    aveline  
       2011-12-13 22:08:22 +08:00
    nodejs +1
    darcy
        12
    darcy  
       2011-12-13 22:16:16 +08:00 via iPod
    快速的实现一个小型聊天室当属node.js
    要迅速扩张估计就比较困难了。
    reducm
        13
    reducm  
       2011-12-13 22:31:01 +08:00
    http://download.csdn.net/detail/reducm/3318985
    当年(好像就是去年)学习JAVA SERVLET JDBC时候写的一个聊天室程序,还有个略缩图可以看看。代码没分层,纯粹写着玩,实现了群聊私聊贴图表情改色等等等,主要是靠AJAX,私聊放内存,群聊MYSQL

    现在让我写的话,会用rails+redis来做吧
    reducm
        14
    reducm  
       2011-12-13 22:33:53 +08:00
    理论上当然是服务器主动推送的websocket比较好,但性能上不清楚这比ajax轮询要好多少,特别解决用户是否在线方面的问题。但不知websocket是不是长链接,是的话也比较耗内存吧?
    54sword
        15
    54sword  
       2011-12-13 22:43:44 +08:00
    node.js
    VYSE
        16
    VYSE  
       2011-12-13 22:48:03 +08:00
    @reducm 肯定要KEEP ALIVE SOCKET的拉,就是一个页面常驻的内存。
    Sivan
        17
    Sivan  
       2011-12-13 22:48:52 +08:00
    node.js
    Ricepig
        18
    Ricepig  
       2011-12-13 22:57:17 +08:00
    还真是node.js最擅长领域啊
    reducm
        19
    reducm  
       2011-12-13 22:59:20 +08:00
    @VYSE 那如果人多的话这个内存可能还比较夸张,还有websocket浏览器的兼容问题,话说还不知道2000年初那时的聊天室咋整的?用frame刷新?
    krazy
        20
    krazy  
       2011-12-13 23:02:56 +08:00
    刚写了一个基于人人的聊天室应用,node.js...
    用的socket.io,不知道怎么评估性能好不好...
    VYSE
        21
    VYSE  
       2011-12-13 23:05:26 +08:00
    @reducm 。。。不是P2P的,其实服务器可以用任何实现,每个客户端还只是跟服务器进行SOCKET通信而已。
    2000年就是一个frame带<META HTTP-EQUIV="refresh" CONTENT="10">不行的刷新聊天信息列表
    reducm
        22
    reducm  
       2011-12-13 23:09:03 +08:00
    @VYSE 怎可能P2P啊。。。我意思是在线人数多用长链接而不是用轮询的话,内存占用会不会只高不低。

    想当年在163的聊天室啊。。。拿到多少女生的BP机。。。还真认识了不少人
    VYSE
        23
    VYSE  
       2011-12-13 23:12:37 +08:00
    @reducm QQ客户端也不会因为服务器端在线人数增加内存啊
    reducm
        24
    reducm  
       2011-12-13 23:15:26 +08:00
    @VYSE 我是在说服务端啦
    VYSE
        25
    VYSE  
       2011-12-13 23:19:31 +08:00
    @reducm 我看到一个用JAVA做的实现,用Ruby、Python大负载的话需要数据库或MEMCACHE足够强劲,长期不响应的肯定会关闭SOCKET,内存肯定不是问题
    Kenyth
        26
    Kenyth  
       2011-12-13 23:22:18 +08:00
    比较实际的方案:
    * server 端支持 non-blocking io 的东西
    * 客户端用 long polling

    去看一个 comet 的实现和 demo ;或者研究一下tornado 和 friendfeed。
    lyxint
        27
    lyxint  
       2011-12-13 23:23:35 +08:00
    用bash吧...我觉得很有优势
    master
        28
    master  
       2011-12-13 23:24:04 +08:00
    node.js
    zenwong
        29
    zenwong  
       2011-12-13 23:51:23 +08:00
    node.js成为大家高并发的首选了?
    lyxint
        30
    lyxint  
       2011-12-13 23:55:06 +08:00
    web端就web端, 聊天就聊天, 一般都是分开的.
    聊天可以用现成的技术来做, jabber, irc, 都挺好.
    yqjun
        31
    yqjun  
       2011-12-13 23:57:40 +08:00
    node.js 有时间我也学习做个聊天室
    evlos
        32
    evlos  
       2011-12-14 00:02:16 +08:00
    为什么不用python呢,node.js比python有什么优势么,感觉tornado给的一个聊天室demo蛮给力的诶。
    iwege
        33
    iwege  
       2011-12-14 01:39:06 +08:00
    nodejs....
    @evlos
    请搜索 socket.io...
    iwege
        34
    iwege  
       2011-12-14 01:41:33 +08:00
    @evlos 反正前后端都用js,连后端小白的俺都可以轻松搞定..不用多学一套语言...
    Livid
        35
    Livid  
    MOD
       2011-12-14 01:43:42 +08:00
    frittle
        36
    frittle  
       2011-12-14 02:00:37 +08:00
    node.js +1 很简单。
    wt_xp
        37
    wt_xp  
    OP
       2011-12-14 17:17:10 +08:00
    node.js 占用内存大不大?
    如果日平均500人在线,峰值2000人在线的话
    需要多大的内存?
    python+node.js不行么?
    python拓展性是不是很好?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1006 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:01 · PVG 06:01 · LAX 14:01 · JFK 17:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.