Alexander B created DIRMINA-1172:
------------------------------------
Summary: Multiple DatagramAcceptors and the creation of a session
object
Key: DIRMINA-1172
URL: https://issues.apache.org/jira/browse/DIRMINA-1172
Project: MINA
Issue Type: Bug
Components: Core
Affects Versions: 2.1.5
Reporter: Alexander B
Hello,
I am using two independently created NioDatagramAcceptors, which are created by
the following code :
{code:java}
AbstractIoService inputSource = new NioDatagramAcceptor();
((NioDatagramAcceptor) inputSource).getSessionConfig().setReuseAddress(true);
DefaultIoFilterChainBuilder filterChainBuilderUDP =
((NioDatagramAcceptor)inputSource).getFilterChain();
filterChainBuilderUDP.addLast("logger", new LoggingFilter());
((NioDatagramAcceptor)
inputSource).getSessionConfig().setIdleTime(IdleStatus.READER_IDLE,
getIdleTimeout());
((NioDatagramAcceptor) inputSource).setHandler(this);
try {
((NioDatagramAcceptor)inputSource).bind(new InetSocketAddress(port));
} catch (IOException e) {
log.error("Failed to connect {}", e);
}
{code}
One Acceptor is listening on port 9800, the other one on 9801. If I now send
UDP packages (from a external application) to both ports (independently). It
seems, that both UDP port are "connected" to the same session.
Information: The external app is sending:
Message "TEST_1 <timestamp>" just to port 9800
Message "TEST_2 <timestamp>" just to port 9801
The overwritten method messageReceived will give the following output:
{code:java}
public void messageReceived(IoSession session, Object message) throws Exception
{
String msgStr = message.toString();
log.info("SessionId:" + session.getId() + " " + msgStr);
}
{code}
2023-04-19_11:47:35.035 [NioDatagramAcceptor-2] INFO - SessionId:1 TEST_1
1681904855701
2023-04-19_11:47:35.035 [NioDatagramAcceptor-3] INFO - SessionId:1 TEST_2
1681904855701
So, both messages (for port 9800 and port 9801) are received by SessionId1. If
I do exactly the same with `NioSocketConnector`, I can see two different
sessions, such that both messages are handled independently:
2023-04-19_11:44:35.725 [NioProcessor-11] INFO - SessionId:1 TEST_1
1681904875701
2023-04-19_11:44:37.754 [NioProcessor-15] INFO - SessionId:2 TEST_2
1681904875701
Is there anything I did not mention in the context of UDP/DatagramAcceptor? Or
is there any setting, such that DatagramAcceptors can create/handle their own
session objects?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]