日期:2014-05-20  浏览次数:20823 次

关于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附带的例子,然后再看看源码,看多了就会了。。。
------解决方案--------------------
请问解码后的数据怎么入库???数据库表改如何设计 谢谢!
------解决方案--------------------
帮顶啊