Chinaunix

标题: 多数安卓app和ios app服务器是tcp还是http [打印本页]

作者: kdkgod    时间: 2013-09-29 11:48
标题: 多数安卓app和ios app服务器是tcp还是http
如题:
多数安卓app和ios app服务器通信用的是tcp还是http协议?
我们公司用的是tcp协议,但是觉得用http协议应该更容易开发一些。
作者: hellioncu    时间: 2013-09-29 12:00
http也是tcp
作者: kdkgod    时间: 2013-09-29 12:30
这个我还是知道的。。。。回复 2# hellioncu


   
作者: linux_c_py_php    时间: 2013-09-29 13:22
愿意怎么做就怎么做, 这是技术选型问题, 与APP功能相关, 哪里谈得上"多数"这个词?
作者: w_anthony    时间: 2013-09-29 14:19
本帖最后由 w_anthony 于 2013-09-29 14:21 编辑

这个方面我想了解一下,请问如果用http应该是做短连接吧?如果是这样的话,服务器往下推送消息该怎么办?难道要另外搞一个tcp长连接辅助么?或者就是客户端定时连服务器发数据包做检测,但是这样貌似效率很低啊,单就连接过程三次握手而言就已经比较浪费了。
作者: kdkgod    时间: 2013-09-29 15:09
http也可以做长连接,不过做起来我估计比用tcp开发麻烦多了。

提供给你一个链接

https://www.ibm.com/developerworks/cn/web/wa-lo-comet/
回复 5# w_anthony


   
作者: myworkstation    时间: 2013-09-29 15:46
回复 1# kdkgod


    “我叫MT“用的就是HTTP。用什么开发主要看团队的能力以及游戏的类型。业务需求决定实现。HTTP相比TCP更浪费流量。
作者: w_anthony    时间: 2013-09-29 15:50
回复 6# kdkgod


    我是觉得既然用http+长连接,干嘛不干脆用tcp长连接呢?这不是更直接么?

作者: kdkgod    时间: 2013-09-29 15:53
嗯 明白 考虑如果没有必须长连接的场景可以用http协议,最起码http也是个可靠协议,它是建立在tcp之上的。这样的话用html+json开发比用tcp开发容易多了。
回复 8# w_anthony


   
作者: w_anthony    时间: 2013-09-29 16:08
回复 9# kdkgod


    我确实听说某些游戏用http协议通信,只是我没有特意去研究它们,只是有这么个矛盾点(难道不需要服务器推送消息么)没理解透,如果真不需要推送消息,用http实现确实简单。
作者: cnlyon    时间: 2013-09-29 23:15
http的json比较方便,如果不是需要长时间保持数据通信http是足够了。
作者: zyh8419792    时间: 2018-04-16 21:59
晚上搜索C++看到这个帖,挖个坟。
回答1L和楼上所有L,一楼的问法没有错,多数的APP都是通过HTTP协议完成数据交互的。
HTTP简单,实用,便于调试,快速开发,
当然,在我们这种人的眼里,长连接也没有问题,只是在制定协议的时候,会显得麻烦一点,还要像搞硬件一样制定一点协议,比如我弄个aPP,和服务器保持长连接,不定协议,简单的协议用字符串当json通讯,每个json前面带个长度啥的,也得要处理下分包拆包什么的,比起HTTP,麻烦了


作者: cokeboL    时间: 2018-04-17 20:33
要看游戏类型咯,强交互的游戏基本都是长"连接",长连接有几种选型啊比如tcp,http可以upgradde成websocket啊,还有可靠udp比如kcp其实也可以当成长连接

我觉得楼主应该先理清楚c/s通信消息的类型:
req/rsp: 一句请求一个应答,比如http请求就是这种,tcp或者其他几种通信的这种一问一答也是这种
req|notify: 一方向另一方发包,不需要应答,可以是 c->s也可以是s->c

tcp也好http也好可靠udp也好,都是信道,短连接属于无状态,无法做到双方的主动发起,需要双方都
支持主动发起的,就不能用短连接的信道

哪种更适合取决于你的需求,短连接如果能满足需求,那实现起来代码要简单得多


作者: cokeboL    时间: 2018-04-18 22:38
才发现,竟然是坟
作者: windoze    时间: 2018-04-22 01:43
虽说是坟不过挖一下也无妨。
用TCP的话很少有人裸写协议,一般都是用Thrift或者gRPC之类,这其实和用HTTP没有什么太大区别。
用HTTP有一个小的优势就是WebSocket,这个东西比TCP写起来容易一些,协议本身有完整的安全性保证,而且有一堆现成的库。
作者: shang2010    时间: 2018-04-27 18:30
性能优化还是用得上老祖宗的智慧的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2