分享

求JAVA WEB后台、IOS、Android之间的通讯解决方案

 instl 2014-09-02
目前的web应用,不论是网页版还是移动app都是基于http协议的。
有这样几个方案:
1. soap协议
2. 纯http协议,以请求参数的键值形式发送请求参数,以json响应
3. 纯http协议,请求响应参数都是json
4. RESTful,请求响应参数可以参考2、3
5. 还有一种方式自己基于http协议定义传输方案,用的应该不多。如果你要用可以考虑使用MessagePack作为数据序列化/反序列化方案
7. 连http也不用了,基于socket实现传输方案,估计除了公司内部通讯应该不会有人采用

个人认为第一种过于沉重,随着功能越来越复杂,传输的报文会越来越大。xml本身就是一个沉重的东西。
第二种比较容易,对于服务器来说最简单,不过客户端要自己拼请求参数,不是很方便
第三种比第二种稍微复杂的在于,每次请求都要指定Content-Type:text/json。否则服务器会收不到请求参数或出错。
第四种,网上有很多文章也很推崇。但是由于跟传统的mvc方式差异巨大,没有了解过的人理解比较困难。曾经跟同事讲过这种模式,所有人都一脸茫然。
第五种,可以基于http协议+MessagePack传输二进制数据,这是前面五种方式效率最高,传输字节数最少的方式。不过由于MessagePack本身的限制,传输对象时可能不够灵活,一个对象的全部属性都要被序列化,而不能选择序列化。如果要定制传输的数据,就要调用它的底层api,比较麻烦。

使用第二、第五种方式,还可以实现只需要开放一个uri,就能实现全部客户端与服务器的交互。只需要根据参数值决定具体要访问哪个模块和模块里的哪个操作。如果设计的好,可以做到很灵活,而且也能达到理想的低耦合高内聚。

每种方式都各有优缺,关键就看团队的技术倾向。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多