20分 |
制定一个简单协议,比如说发送数据前先发一个数字,这个数字表示随后的多少字节数据表示当前这批数据
|
或者设置数据分隔符,比如http上传文件时,貌似用的{10,13,10,13}.。。。
|
|
10分 |
为什么不使用成熟的框架,比如netty?
为什么不使用http POST方法? 为什么不直接写servlet来解决这个问题? |
后来想了想,解决这么问题,只能这样了。靠TCP层告诉你消息分割,估计是不可能的。 |
|
第一:最近打算使用mina,想问一下,nima和netty哪个好?不是我不用,最近不敢改,想这次测试过了再改。 第二:即使用了netty或者mina 应该也解决不了上面我说的问题吧,我说的是消息界限问题,你说的是数据传输问题。 |
|
这个应该是个办法,不过没有上面更正式一些。 |
|
10分 |
netty, 同一作者,放弃了mina 我要表达的意思是,最好在标准的协议上实现功能。首先,定义好一个传输协议是很难的一件事,其次无bug的实现也不容易。 那么长连接上数据传输有哪些现有的协议呢?目前,我认为Websocket(RFC 6455)比较好,你只要定义消息内容就可以了,传输层的很多开源架构为你实现了。 JSR 356 是JavaEE7的规范,目前JavaEE7 只有glassfish/wildfly(jbossAS8)实现。 仅仅传输,可以采用netty来实现;传输和业务逻辑一起实现,建议采用JSR356。 无论哪种实现方式,你都可以集中精力在自己的消息处理上,而你遇到的消息界限问题,底层框架都为你做好了。 |