`
yixiandave
  • 浏览: 138925 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

这是起始篇,对前端时间的回顾

阅读更多
这是本项目的第一篇日志。。。主要介绍背景和设计情况吧,也算做个备忘。废话比较多,对于时间不多的看客在此郑重提醒,这里只是LZ自己做个回顾,完全是自娱自乐。如果有能帮助您的地方不胜荣幸,如果觉得浪费您时间了在这里说句对不起了

这大学读的也是跌跌撞撞的,住院、挂科基本全程尾随,还迫不得已重修了一年大三,也挺对不起父母亲人老师的。主要还是自己某种奇怪的坚持在做遂吧,自从接触java开发就一头钻了进取,对学校其他课程再不感兴趣。我也是真心热爱java开发这门技术。

闲话到这里,YVisual是本人本科毕业设计的项目,目前主要目标是完成一个可以在android和服务器之间视频通讯的一个软件(当然,初步目标是将视频发送到服务器并保存。。服务器端保存是指导老师强烈要求的。。我隐隐听到了硬盘君的哀嚎)

初步设想Android端完成H.264编码发送至服务器保存,后续有android客户端之间进行视频通话、HTML5和android之间视频通话的设想。本来想写个java桌面应用的,但是JMF无论如何都没办法支持x64系统只能作罢,有空学了JNI再完善吧。

说说项目进度吧
目前完成了android的界面初步开发(平台为android4.0,由于Fragment对TabActivity的取代只好对低版本说声对不起了),双向RSA编码和解码。
服务器端是一个J2EE Web项目,采用MySQL数据库对用户账户信息、视频文件信息做一个存储。ORM采用了MyBatis3框架(相对于沉重的Hibernate来说还是更喜欢这种灵活小巧的方式)。新建一个service事务层管理前端Struts2和myBatis之间的通信,也加入了初学的Spring框架。这部分暂时只做了登陆和注册的流程。前端页面完全没做。在web端口以外额外打开了两个端口(tcp+udp)作为客户端通信接口。现在暂时使用一个junit类开启端口做测试用。
udp端口作为消息传输信道(原来设计是两个udp连接一个负责消息一个负责视频数据传输,采用不同的协议),后来考虑到视频数据连续性需要有保证所以把数据传输通道换成了TCP连接,就出现了udp+tcp连接这样怪异的设计。。

udp消息通道采用json数据格式,alibaba的fastjson很好用,消息传输采用RSA加密,使用心跳脉冲维持在线状态。
tcp只在需要的时候创建连接,本着做一个新项目就要学一点新东西的原则,tcp服务器端采用了nio设计,对于这个领域还非常生疏,不得不新写了一个测试项目学习。至于协议则是采用了字节流的设计

当然,考虑到后面可能要做p2p实现最后可能还是会把tcp通道改成udp。不过还需要一个更复杂的协议来保证数据传输的准确性

碰到的问题:
1,RSA在安卓端和PC端不能匹配。Android从服务器取得RSA公钥后无法解密来自服务器的消息,Android使用公钥加密的数据在服务器端无法解密,经过查询资料得知两者使用的不是同一个RSA标准。在引入bouncycastle包后解决。

2,H.264格式还没完全吃透,暂时还没到那一步,到时候再来头痛吧

3,RTP协议,恩,只是备忘。。。

4,netty,恩,同学推荐的NIO框架,不过使用框架前还是先把基础搞明白比较好

剩下的后面再谈吧
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics