The reason I hacked the LambdaMOO server to be able to have arbitrary objects listen on ports stems from a discussion that I had with Jay Carlson in our apartment one night about HTTP and MOO. We were arguing about whether it was better to have separate connections to the server for different protocols/purposes, rather than have all the connections multiplex over the same connection. I'm in favor of the multiple connections, multiple data streams approach. Jay, being involved in the development of the MOO Control Protocol (MCP), has good reasons for its existance.
One of the original goals was to have JHM not have to listen for HTTP requests on the main port, parse out things that started with 'get' and etc etc etc for HTTP. This, I hope is obvious, would eventually happen with every protocol that people wanted to use with standard clients. Instead of having to do that, why not just put some object that's designed to deal with HTTP, on some port, and have standard web clients connect to a port, and get HTML? Seemed easy enough.
Other things could be made to work this way like InterMOO Mail, via SMTP/POP, InterMOO Communication with specialized protocols, etc.
That's MPL, to get a copy of the latest distribution, grab the file mpl-1.3.tar.gz. This has a readme and a faq, which have similar information in them. If you have questions feel free to send me mail.
This software is reasonably stable, however I don't claim it's bug-free. If you have problems with it please send me mail and we can work out the problem. Then I can update the patches so the (alleged) bug doesn't bother others.
ivan@ccs.neu.edu