最近需要改进项目的通讯部分,正好发现MINA,觉得不错,遂拿来用
需求是这样的,java服务器发送命令给C++驱动的控制器,命令执行完以后控制器返回结果
一个java服务器可以对应多个IP不同的控制器。用NioSocketConnector,指定控制器的IP和端口后,建立客户端成功,Handler也能捕捉到sessionOpened事件,
通过IoSession.write方法发送命令后,能捕捉到messageSent事件,控制器也能成功执行命令,
但是不知道为什么Handler的messageReceived方法没有被执行,无法获取控制器的返回信息。
但是我用SocketChannel和Selector单独建立的线程可以打印出控制器的返回信息。
然后我用MINA写了个伪服务器端,服务器端的messageReceived和上面的客户端的messageReceived都能被执行,郁闷。问题如下:
1 为什么客户端的messageReceived方法没有被执行?怎样获取控制器的返回信息呢?
2 MINA的服务器端和客户端怎么理解?NioSocketAcceptor是不是只能监听local的端口?有谁做过MINA和非java通讯的项目啊?救命啊