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

WebSocket/Socket 哪个更适合用来做 iOS/Android 客户端聊天场景的通讯?Socket 是否更节约资源?WebSocket 是否更适合浏览器使用而不是移动端?

  •  2
     
  •   WildCat · 2014-06-28 13:20:17 +08:00 · 16516 次点击
    这是一个创建于 3830 天前的主题,其中的信息可能已经有所发展或是发生改变。
    7 条回复    2014-06-29 07:55:41 +08:00
    allenforrest
        1
    allenforrest  
       2014-06-28 14:33:43 +08:00 via iPhone   ❤️ 1
    你想多了,移动端IM基本可以考虑XMPP方案,基于TCP
    WildCat
        2
    WildCat  
    OP
       2014-06-28 14:58:22 +08:00 via iPhone
    @allenforrest Socket/Websocket都不合适是吧?
    基础不好,对于通信协议不了解。朋友说想用Websocket做他的社交项目(iOS/Android)的聊天模块,我表示不适合,然后他不信,来这里求证。
    viila
        3
    viila  
       2014-06-28 15:22:20 +08:00   ❤️ 1
    快速开发的角度用websocket我觉得蛮快的,mobile平台有好多对接websocket的现成库可以用。
    非要评价的话,虽然websocket的开销比较大(存储结构比较直接),也比xmpp之类的xml好。

    当然最好还是自己利用socket+序列化的方法比如xml,json,protobuf,msgpack,或者新的FlatBuffers实现会好点吧。

    另外,印象中google webrtc的demo apprtc里面的长连接方案通过封装网页websocket接口在上层(java/oc)调用(后台跑一个browser,把GAE Channel的调用/响应通过GAEHandler.java传递上上层),简单的思路实现了与网页端共享server接口。
    viila
        4
    viila  
       2014-06-28 15:26:41 +08:00   ❤️ 1
    先前可能说得比较武断了,聊天场景的通讯需要考虑的方面还有比如,是否可以承载大量的连接,以及一些针对网络拥塞/队列的方案的优化,所以xmpp之类的有大量公司work在上面(openfire什么的)例子可能多点。
    比较现实的,如果是自己实现的socket。那么服务端/客户端的对接,升级框架,容错方案,高并发高连接方案都得自己思考了 * * 坑还是蛮大的。

    。请轻拍
    Zjinys
        5
    Zjinys  
       2014-06-28 16:17:02 +08:00 via iPhone
    可以去看看MQTT,靠谱。
    cqhydz
        6
    cqhydz  
       2014-06-28 21:57:02 +08:00
    WebSocket先用着,以后再改就行了,不要过度设计了,现在社交APP多如牛毛,能活下来再说。
    lm902
        7
    lm902  
       2014-06-29 07:55:41 +08:00 via Android
    WebSocket开发超级轻松的,看看http://signalr.net 的demo就知道了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1020 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 18:26 · PVG 02:26 · LAX 10:26 · JFK 13:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.