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

App 服务端和客户端设计架构问题

  •  
  •   Jelen · 2015-01-19 20:26:07 +08:00 · 8114 次点击
    这是一个创建于 3383 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人刚开始接触app的开发,有一些问题希望能得到大家的指点:

    现在要开发的是app的服务端和客户端,想知道这方面的设计框架是如何实现的
    比如说app和服务器的通信,是tcp长连接来保持吗?
    app中是否还需要存储数据,还是每次都是从服务器端读取数据过来,如果是读取的话,每次都需要读是不是2g网络扛不住?

    我想了解一些这方面的架构的知识,希望大家多多指教。
    12 条回复    2015-01-20 22:38:36 +08:00
    xiaoyaoking
        1
    xiaoyaoking  
       2015-01-19 20:46:29 +08:00 via Android
    首先声明以下纯属瞎说,大牛别喷,我啥都不懂。

    之前做过两个app 都是 后端php json处理后的数据进行交互。
    GeekGao
        2
    GeekGao  
       2015-01-19 22:04:01 +08:00
    只要你深入思考而不是倒听途说你就能想明白,我问你啥是TCP长连接?
    2G网络有哪几种无线网络接入方式,传输速率有多大?
    Comdex
        3
    Comdex  
       2015-01-19 22:10:06 +08:00
    我觉得都是json交换数据吧?
    skylooker
        4
    skylooker  
       2015-01-19 22:14:24 +08:00
    同意 @GeekGao 的回复
    建议楼主先了解下基础知识,你的问题自然会迎刃而解。
    pi1ot
        5
    pi1ot  
       2015-01-19 22:33:55 +08:00
    http://www.weibo.com/2002536511/C0bKdmQnO

    A: iOS 开发只需要两步,一,发一个 HTTP 请求渲染一个 UITableView。二,再发一个请求渲染一个 UIView 。

    B: PHP开发只需要两步,一、接收一个HTTP请求存到数据库。二,从数据库取出一些数据输出到页面。
    lujiajing1126
        6
    lujiajing1126  
       2015-01-19 22:59:37 +08:00
    看你想做成什么样的应用了
    如果你只想做一款三流软件,那你就每次从服务器取数据就好,目前主流应该是json吧
    如果你想做一流的软件,那就得考虑非常多的问题
    不知道你说的app是个什么东西。起码是个ios上面的还是android的。不说清楚也不知道具体状况
    还是先看个什么getting start之类的教程吧
    至于tcp长连接。你还没学会走就想跑。。这不科学
    Jelen
        7
    Jelen  
    OP
       2015-01-19 23:06:04 +08:00
    @GeekGao 很对,我一直的想法是我的app需要一直保持跟服务器的通信才能随时获取到服务器上的数据,所以才会想到长连接上去,后来想想,只要在操作的时候发送请求就可以了,但是如果是定位的话,是需要一直保持连接的吧?
    Jelen
        8
    Jelen  
    OP
       2015-01-19 23:07:28 +08:00
    @lujiajing1126 嗯,其实不管是ios还是Android,其实架构方面都是类似的嘛,我只是想了解框架
    lujiajing1126
        9
    lujiajing1126  
       2015-01-19 23:13:42 +08:00
    @Jelen 你如果是说通讯的话那应该是一样的
    那你后端想用什么语言呢。。。囧
    GeekGao
        10
    GeekGao  
       2015-01-20 09:21:54 +08:00
    @Jelen 看场景,首先你要了解使用长连接要付出什么代价
    momowei
        11
    momowei  
       2015-01-20 09:55:43 +08:00
    除非做推送不需要长连接,就算有推送我也推荐使用现在第三方提供好的api可以节省很多问题,在手机网络里管理长连接是个很麻烦的事情。
    app和服务端通信其实和web差不太多,不同的是web是渲染好页面返回给浏览器。而app要的只是服务端提供的json数据,走http请求就好了。
    本地存储其实就是缓存吧,这个看app具体情况,但像图片什么的肯定要缓存。
    Stony
        12
    Stony  
       2015-01-20 22:38:36 +08:00   ❤️ 1
    一般不需要长链接。

    常见的做法是
    请求,显示

    复杂的做法就是
    请求 缓存 显示
    当然正确的顺序是
    检查缓存 显示 请求 合并缓存 刷新显示

    再复杂点就是
    配置 交互 请求 缓存 显示
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3224 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:27 · PVG 22:27 · LAX 07:27 · JFK 10:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.