Hey, On Fri, Aug 20, 2010 at 9:58 AM, Ashutosh Sharma <[email protected]> wrote: > Hi Everybody, > > > Thanks for your kind consideration. > > > I have just started using mina to implement server & client for a pub-sub > protocol (MQTT) over TCP/IP. This protocol already defines the PINGREQ & > PINGRESP packets to implement heart-beat. Both of these packets are 2 bytes > messages. Client does use long-standing connection and after any problem, > try to reconnect after 30 seconds. > > > My problem is as follows > > 1. Client is able to send other bigger packets(30+ bytes) correctly. > > 2. But it is not able to send PINGREQ, a 2-byte message. > > 3. PINGREQ was delivered to the server when client had to send another > packet (30+ byte messages). > > 4. I put ProtocolEncoderOutput.flush() after each write, but it does not > work.
http://mina.apache.org/faq.html#FAQ-WhydoesSocketConnectorsendseveralmessagesasonemessage%253F You probably need to disable Nagle's algorithm in your socket session config. Regards, James
