V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gracece
V2EX  ›  问与答

手机客户端需要长时间连续性给服务器发小数据,服务器端应该选用什么技术?

  •  
  •   gracece · 2014-03-05 22:50:03 +08:00 · 2827 次点击
    这是一个创建于 3922 天前的主题,其中的信息可能已经有所发展或是发生改变。
    类似于微信这种长连接的,之前没做过不知道怎么搜,搜“长连接”等还是未能解决问题。是要用c/c++ 还是python之类的建立socket吗?
    谢谢各位!
    11 条回复    1970-01-01 08:00:00 +08:00
    ETiV
        1
    ETiV  
       2014-03-05 22:52:54 +08:00 via iPhone   ❤️ 1
    如果你会node js,http://socket.io
    andyhuax
        2
    andyhuax  
       2014-03-05 22:54:07 +08:00 via iPhone   ❤️ 1
    comet
    gracece
        3
    gracece  
    OP
       2014-03-05 23:00:12 +08:00
    @ETiV 客户端是安卓能配合这个nodejs插件吗?

    @andyhuax 谢谢。。第一眼搜到彗星,我再认真看看。
    ovear
        4
    ovear  
       2014-03-05 23:08:32 +08:00   ❤️ 1
    默默地推荐下golang
    lijinma
        5
    lijinma  
       2014-03-05 23:09:53 +08:00   ❤️ 1
    nodejs soket.io 不错的选择
    gracece
        6
    gracece  
    OP
       2014-03-05 23:13:52 +08:00
    @ovear
    @lijinma
    @andyhuax 假设项目已经有一定的PHP基础呢,搜到这么一个 http://xingqiba.sinaapp.com/?p=1041 有python进行中转,看得比较疑惑,还望解答。
    我这个主要还是客户端长时间发小数据给服务器,服务器基本不用推送什么给客户端的。
    ovear
        7
    ovear  
       2014-03-05 23:27:06 +08:00   ❤️ 1
    @gracece 不建议使用php做这种事情,他那个代码是要使用php xxx.php 这种cli运行模式运行的,php本身内存泄露不说,单单就他只能使用单核心这一点就有充分的理由不是用它。
    我曾经用php写了个websocket服务端,超过100人效率就严重下降,经常抛出socket reset。
    因为服务器要主动发数据(push 推)给客户端,一般都必须是长连接,使用轮询其一是服务端压力大,其二是客户端费电。
    txlty
        8
    txlty  
       2014-03-05 23:30:56 +08:00   ❤️ 1
    http://developer.51cto.com/art/201105/262638.htm
    小公司或个人没这个条件。客户端保持链接,加上数据库读写操作。单台服务器扛不住多少并发。
    所以这方面资料少。
    txlty
        9
    txlty  
       2014-03-05 23:58:34 +08:00
    当年聊天室时代,有个搭建聊天室的软件叫ichat,效率远超iis+asp搭建的聊天室。因为人是c语言写的。
    你要是有实力就用c/c++写服务端。不建议用脚本语言。
    ETiV
        10
    ETiV  
       2014-03-06 00:02:33 +08:00   ❤️ 1
    答LZ问:

    socket.io 各种客户端库都有的, 你可以github上搜一搜.

    我用它写了一个类似TeamViewer的东西, 用在 Linux 无 GUI, 连接SSH上.

    通过公网服务器搭桥, 直接连到办公室的机器上~ 只用了不到300行代码, 超级方便.
    jedyu
        11
    jedyu  
       2014-03-06 08:10:34 +08:00   ❤️ 1
    一个socket用c搞定也就没几行代码吧,何必还要去python、nodejs、go之类的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2620 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:26 · PVG 19:26 · LAX 03:26 · JFK 06:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.