如何使MINA客户消息事件触发?

时间:2019-05-06 15:57:11

标签: java kotlin io apache-mina

我正在制作一个需要客户端-服务器消息传递的应用程序。我决定使用MINA。服务器工作正常(读取消息,触发事件并写入响应,如在日志中一样),但是客户端似乎不触发任何事件。它记录发送的消息,接收的字节,但是从不使用处理程序。处理程序内部的调试消息均未打印。如何使messageReceived事件触发?

我正在使用Linux服务器以及1.8.0_212 java,MINA版本2.1.2,Kotlin版本1.3.30

val connector = NioSocketConnector()

connector.filterChain.addLast("logger", LoggingFilter())
connector.filterChain.addLast("codec", ProtocolCodecFilter(TextLineCodecFactory(Charsets.UTF_8, System.lineSeparator(), System.lineSeparator())))

connector.handler = object: IoHandlerAdapter() {
    override fun sessionCreated(session: IoSession?)
        println("created session")
    }

    override fun event(session: IoSession?, event: FilterEvent) {
        println("event: ${event::class.java.simpleName}")
    }

    override fun messageReceived(session: IoSession?, message: Any) {
        println("received message: $message")
    }
}

val future = lobbyConnector.connect(InetSocketAddress("172.18.0.10",
Constants.SERVER_PORT))
future.awaitUninterruptibly()

val session = future.session
session.config.isUseReadOperation = true

我希望我的处理程序可以接收消息,但是它什么也没做

1 个答案:

答案 0 :(得分:0)

已修复。我很笨,我只是在其他模块中分配了其他处理程序,而这些模块没有调试