Boost.Asio's io_service and event handling
I'm trying to figure out how to use Boost.Asio's network functionality so that I can make some server software. I'm learning how to do this by examining the C++11 chat server example found here and I seem to understand most of it. However, assuming io_service.run() is the catalyst for event loops, I'm not seeing anywhere how it yields a notification such as "oh, the client sent some data" or an event handler of any sort. What's more, it seems a lot like in the chat_session class, it defines what the client does with the data received from the server. I'm not writing a client program as well, only the server part. I should be able to code the server in such a way that it sends the client(s) data and let whoever writes the client manage what to do with it on their end, but I'm not seeing that in this example.
I did this before successfully in Qt, but I've since been understanding Boost a lot better and wanted to try and write a less dependency-cluttered version. I know Boost has a signals library as well, but I wouldn't know how to entwine it with the Asio library in this case.