On a side note, this is the developers mailing list.  We're filling the
inboxes of other developers that probably don't want to be a part of this
conversation.  We should move it to the us...@mina.apache.org mailing list.

On Thu, Feb 14, 2019 at 11:36 AM Jonathan Valliere <john...@apache.org>
wrote:

> so I cannot ensure a message is being received/sent and look at some queue
>> for this.
>
>
> Why do you need to ensure the message is sent?  Once you call write(), it
> will be sent eventually.  The only guarantee that it was actually sent and
> received would to require the Client to reply to the message.  This could
> be done by using some kind of Queue attached to the IoSession which
> contains pending sent requests.
>
> *Note: messageSent* just means it was written to the OS socket, no
> guarantee that it made it anywhere.
>
> On Thu, Feb 14, 2019 at 11:22 AM Emmanuel Lécharny <elecha...@gmail.com>
> wrote:
>
>> Let's be clear:
>>
>> - reads will result in a messageReceived event and you will be able to
>> process it and do whatever you want to do in your IoHandler, as soon as
>> the message is complete (ie, if the message is read in chunks, you will
>> only receive a messageReceived event once the message is complete)
>>
>> - writes is a bit different: you do write, and you either decide to do
>> something *after* the write has been executed, but without any guarantee
>> that the message has been fully sent to the remote host, *or* you
>> execute your action when you receive the messageSent event - which means
>> you have written a message, *and* it has been fully sent to the remote
>> peer.
>>
>> In any case, you are still in the IoProcessor thread, so you can do
>> whatever you want (except that if you decide to do what you want to do
>> when receiving the messageSent, it will be executed later on, only if
>> the message has been fully sent.
>>
>>
>> On 14/02/2019 16:56, kevintjuh93 wrote:
>> > It's for a game server where actions need to be synchronized with
>> read/write
>> > in order to make sure everything is done in order. Not everything is
>> > executed from read/write methods, so I cannot ensure a message is being
>> > received/sent and look at some queue for this.
>> >
>> > That's why I want to execute something on the same thread a read/write
>> event
>> > is done for a specific session.
>> >
>> >
>> > Jonathan Valliere-3 wrote
>> >> I just read the last email Kevin wrote.
>> >>
>> >> Kevin, if you could execute something on the IO processor thread; you
>> >> understand that It would be a deferred action that could only happen
>> after
>> >> the IO processor is done?  Maybe you could explain the reason why you
>> want
>> >> to do this?
>> >>
>> >> On Thu, Feb 14, 2019 at 10:40 AM Emmanuel Lécharny &lt;
>> >> elecharny@
>> >> &gt;
>> >> wrote:
>> >>
>> >>> I still don't get it.
>> >>>
>> >>> Your IoHandler will be called everytime an event occurs (message
>> >>> received, message written, session created/closed/idling, exception).
>> >>> You have the opportunity to execute some action at this moment.
>> >>>
>> >>>
>> >>> Beside that, I don't see a use case. I'm probably missing something...
>> >>> Unless what you want to do is to have another session to be called
>> while
>> >>> processing an event, using the thread you are in ?
>> >>>
>> >>>
>> >>> On 14/02/2019 16:21, Jonathan Valliere wrote:
>> >>>> There are some examples in the unit tests which accomplish this by
>> >>> creating
>> >>>> a Client and Server connection.  I don't believe there is a true
>> >>> loopback
>> >>>> implementation in Mina without going through the OS networking.
>> >>>>
>> >>>> On Thu, Feb 14, 2019 at 10:16 AM kevintjuh93 &lt;
>> >> kevin_kal@
>> >> &gt;
>> >>> wrote:
>> >>>>> Hi guys,
>> >>>>>
>> >>>>> What I mean is that I want a way to execute something for an
>> IoSession
>> >>> in
>> >>>>> the same thread the I/O events run. I figured a good way would be to
>> >>> 'fake'
>> >>>>> an incoming message, called a loopback packet. Like write a message
>> to
>> >>>>> 'yourself'.
>> >>>>>
>> >>>>> I rather like to avoid using an ExecutorFilter or a lock.
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> --
>> >>>>> Sent from:
>> >>>>>
>> >>>
>> http://apache-mina.10907.n7.nabble.com/Apache-MINA-Developer-Forum-f6809.html
>> >
>> >
>> >
>> >
>> > --
>> > Sent from:
>> http://apache-mina.10907.n7.nabble.com/Apache-MINA-Developer-Forum-f6809.html
>>
>

Reply via email to