Added to FAQ. http://cwiki.apache.org/confluence/display/MINA/FAQ#FAQ-WhydoesSocketConnectorsendseveralmessagesasonemessage%3F
cheers, Cameron On 11/14/06, Trustin Lee <[EMAIL PROTECTED]> wrote:
We'd better add this answer to our FAQ page. IIRC, we got this same question more than ten times. :D Trustin On 11/14/06, Niklas Therning <[EMAIL PROTECTED]> wrote: > > tan wenlong wrote: > > Hi,When I use the SocketConnector send messages to Server, Sometime It > will send several messages as one message. For example, I hope that > SocketConnector send "abc" and "def", but SocketConnector send "abcdef". Is > it a bug of mina? > > > > > No, this is due to your OS trying to send packets more efficiently (see > http://en.wikipedia.org/wiki/Nagle_algorithm). You can enable/disable > Nagle's algorithm by a call to SocketSessionConfig.setTcpNoDelay(), e.g.: > > ((SocketSessionConfig) connector.getSessionConfig()).setTcpNoDelay(false) > > However, even if you do this you cannot expect one session.write(bytes) > in MINA to correspond to one TCP packet on your network. You should > probably implement your own MINA ProtocolDecoder to handle the assembly > of incoming bytes into message objects. The TextLineCodec is a good > start if the protocol you're implementing is based on text lines. For a > more advanced example have a look at the SumUp example in the MINA > distribution. > > HTH > > -- > Niklas Therning > www.spamdrain.net > > -- what we call human nature is actually human habit -- http://gleamynode.net/ -- PGP key fingerprints: * E167 E6AF E73A CBCE EE41 4A29 544D DE48 FE95 4E7E * B693 628E 6047 4F8F CFA4 455E 1C62 A7DC 0255 ECA6
