
On 06/19/2013 01:55 PM, Michael Powell wrote:
I need to design a delimited message framing for TCP/IP sockets, probably using Asio to facilitate transport. Then build an OSI layer 7 application vernier to handle framing.
I have a messaging middleware prototype that is build on top of Asio at: http://axiomq.sourceforge.net/ There is no documentation yet, as I have not settled on the design yet. The prototype has a basic_message_socket class with two functions async_read_message() and async_send_message() that handles the exchange of messages. A concrete implementation of basic_message_socket is needed to support a specific protocol. I have a very basic and feature-weak implementation of ZTMP/2.0 (the ZeroMQ protocol.) It currently uses a home-brewn state machine to parse the protocol. I have not yet examined if this could be replaced by Spirit, StateChart, or MSM. A connection can be established with async_connect() and async_accept(). The latter is in the basic_message_acceptor class. These functions only report back to the application once the two sides have exchanged protocol headers and determined if they are compatible.