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

打算在iOS 上实现聊天功能,对于硬件配置不高的小玩家,怎么玩

  •  
  •   yabusai · 2013-12-30 15:53:32 +08:00 · 5813 次点击
    这是一个创建于 3985 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一片空白,没有开发过聊天功能,网上有人说xmpp,也有人说tcp,还有人说udp,请高人指点
    12 条回复    2014-08-09 22:40:15 +08:00
    august
        1
    august  
       2013-12-30 16:00:00 +08:00
    yabusai
        2
    yabusai  
    OP
       2013-12-30 16:08:11 +08:00
    有人说,可以使用CocoaAsyncSocket 来实现,不知道效果如何?
    tab
        3
    tab  
       2013-12-30 18:30:39 +08:00 via iPhone
    硬件配置不高是啥意思?需不需要server端呢,要的话,XMPP开源项目一大把,LZ可以先从怎么把他们跑起来入手,然后再研究底层实现。如果只是要iOS设备之间通信的话就要看看网络协议了。仅供参考,我也不太了解相关技术细节,没法帮助更多了。
    Numbcoder
        4
    Numbcoder  
       2013-12-30 21:03:45 +08:00
    MQTT
    est
        5
    est  
       2013-12-30 23:14:17 +08:00
    socketio, sockjs协议。兼容了随手就把web端做了。
    androidBrant
        6
    androidBrant  
       2013-12-31 09:10:49 +08:00
    我没做过web开发,就用这个 https://cn.avoscloud.com 用推送实现聊天。。

    不知道你这问题是不是AB问题
    holy_sin
        7
    holy_sin  
       2013-12-31 09:34:08 +08:00
    xmpp 不行吗
    winsky027
        8
    winsky027  
       2013-12-31 10:40:21 +08:00   ❤️ 1
    我们这边的iOS即时聊天服务端采用了nodejs写的tcp server,自己封装的二进制协议,本打算protobuf,node和iOS端的protobuf不是很活跃。

    如果不打算兼容浏览器,socketIO以及所有的websocket框架都不是很合适,web socket本质上是离http比较近,建立连接时在tcp之上有几次来回握手验证过程。

    如果打算兼容浏览器,socketIO也不合适,socketIO在对浏览器兼容性的处理上采用websocket和长轮训并举的方案,不支持websocket的浏览器降级为长轮训,这里可以看出socketIO为了达到一统天下的兼容性做了很多妥协,性能和潜在bug也不可控

    iOS端我们使用了cocoaAsyncSocket库,这个开源项目非常优秀,对socket操作的封装以及封包、解包、粘包问题解决的很好。
    yabusai
        9
    yabusai  
    OP
       2013-12-31 12:04:34 +08:00
    @winsky027 ,我正在看cocoaAsyncSocket,根据示例来看,很好用,服务端另我很是纠结,.net 方面的我还懂点,其它的就只能干瞪眼了,如果用.net ,不知有没有好的建议!!
    winsky027
        10
    winsky027  
       2013-12-31 15:47:10 +08:00   ❤️ 1
    @yabusai 我们刚开始做的时候,也是多方考察,考虑过基于java python的事件框架,也考虑过c++的asio,后来考虑开发成本和现有人员的研究成本,选用nodejs现在来看还是不错的。

    考虑了业务逻辑和数据存储之后,c++、python、java、.net的性能差距会被拉小,开发成本和对整个项目的控制到后期挺重要的

    所以,如果你觉得你的团队能很好地hold住.net以及.net可能会遇到的各种坑,我建议项目前期可以考虑.net,量起来之后再说
    dingtianran
        11
    dingtianran  
       2014-01-07 18:06:24 +08:00
    https://layer.com
    XMPP/jabbar 协议的开发者搞的项目,提供通讯SDK,小规模App可以免费用,快速添加通讯功能
    hjiang
        12
    hjiang  
       2014-08-09 22:40:15 +08:00
    试试 AVOS Cloud 的实时消息服务吧: https://avoscloud.com/features.html#/slide-2
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3131 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:21 · PVG 22:21 · LAX 06:21 · JFK 09:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.