关于MINA项目问题
最近在弄一个socket 服务器程序,采用MINA开发,现在遇到一些问题,想请高手解决。
项目情况:
C++编写的客户端向Java + MINA 编写服务器发送数据,服务器收到数据以后,根据不同的请求,做不同的处理。
1、数据入库;
2、返回客户端查询的数据
3、把客户端数据转发到其他客户端。
客户机会发十多种报文,比如:
包头 长度 内容 结尾
0x7D LEN DATA 0x7E
1 1 len 1(字节长度)
请教的问题:
1、项目框架怎么架构?
2、这些报文怎么处理?我想这些报文应该是自己写个ioFilter处理。
3、对于这个IOFilter是不是,不同的报文可以写一个过滤IOFilter处理?
4、保存到数据库,返回查询数据,转发到其他客户端,我想在IoHandlerAdapter去处理,是否合理?
请各位帮忙解答,英文文档我看了下,不能很好的理解,主要是英文水平有限。我用的是MINA 2.0 M6包
------解决方案--------------------
呵呵,这个基本不需要什么架构之类的东西的.就用MINA实现服务器,C++写socket通信就可以了.
------解决方案--------------------Mark~ JF~
------解决方案--------------------
1、项目框架怎么架构?
当然为了日后维护方便,你可以对MINA再封装一下,定义自己的协议:
客户机会发十多种报文,比如:
包头 长度 内容 结尾
0x7D LEN DATA 0x7E
1 1 len 1(字节长度)
架构:
客户端1-----接入服务器(根据消息ID)-----逻辑1处理服务器
客户端2 \
客户端3 \
\-----逻辑2处理服务器
\
\-----逻辑3处理服务器
接入服务器专门负责消息的接受和发送,比如一个A客户要发送给B客户一条信息,当然消息中一定包含AB双方的标示,接入服务器可以据标示将此消息转发给不同的逻辑服务器处理,处理完后返回给接入服务器,服务器又根据标示将消息发送给B客户。数据库的相关操作都可以有逻辑服务器读取或保存数据。
2、这些报文怎么处理?我想这些报文应该是自己写个ioFilter处理。
你必须实现自己的编码和解码器(可以继承CumulativeProtocolDecoder解码),当然你可以直接使用这个已有的累积解码器
3、对于这个IOFilter是不是,不同的报文可以写一个过滤IOFilter处理?(和问题2一回事)
4、保存到数据库,返回查询数据,转发到其他客户端,我想在IoHandlerAdapter去处理,是否合理?
可以的,继承IoHandlerAdapter然后重写里边的方法
ps.MINA 2.0 M6包不稳定,但是包结构更加合理了
多研究研究MINA附带的例子,然后再看看源码,看多了就会了。。。
------解决方案--------------------请问解码后的数据怎么入库???数据库表改如何设计 谢谢!
------解决方案--------------------帮顶啊