Как заставить событие сообщения клиента MINA срабатывать? - PullRequest
1 голос
/ 06 мая 2019

Я создаю приложение, которое требует обмена сообщениями между клиентом и сервером.Я решил использовать 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 голосов
/ 08 мая 2019

Fixed. Я такой тупой, я просто назначил другой обработчик в другом модуле, у которого не было отладки

...