java - 如何触发 MINA 客户端消息事件?

标签 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

我希望我的处理程序能够接收消息,但它没有执行任何操作

最佳答案

已修复。我太笨了,我只是在其他模块中分配了不同的处理程序,而该模块没有调试

关于java - 如何触发 MINA 客户端消息事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008675/

相关文章:

java - 如何在 Mac 上启动 Java 应用程序并抑制控​​制台

java - JButton 和 JComboBox

android - mockkStatic 和 mockkObject 不会模拟 Android 中的伴随对象

java - 无法使用 Gradle 和 Kotlin 运行生成的 JAR 文件

Javascript快速读取本地文件到UInt8Array

c - 如何清除 C 中的输入缓冲区?

java - JDBC4注解在哪里?

java - 从 Java 运行时执行的 avconv 工具在 8 分钟后停止编码

android - Kotlin扩展函数: unresolved reference

c# - Xamarin.Forms : Directory. GetFiles