EDIT: If you need to submit bugs or want to improve my
work, its now available on github!
tried searching for information on how to properly create a multi-client socket server in PHP? You’ll get
plenty of results with outdated and messy source code, some of which won’t even work.
was the conclusion I'd come to a couple years ago when I decided that I wanted to try my hand at writing an
IRC server. The why is not important… (For the fun of building an IRC Server, if you can call
that fun). So I googled around a bit until I finally found some code that worked on its own, and
quickly built a semi-functional IRC server using it, and headed off to sleep at 5am.
next day I was very, very happy with the results of my hard labor, but it wasn't good enough, so I started
re-writing it from scratch as an Object, and thus I created class::IRCServer.
once I felt that I was finished screwing around with my newly built IRCd, I decided to modify the function
enough to be used on its own as a socket server, to share with the world. However, that was a couple years
ago (The non-edited version of this article was written in 2010).
PHP has evolved to a point where the Socket Server class I had written was out-dated, buggy, and just plain
So I built a new library from
scratch after looking at the old code, and came up with Navarr\Socket. The code is open-source,
MIT-license, and available on Github. I heavily encourage you to fork and submit pull requests. The code
is namespaced, follows the PSR-2 standard, and even has some PHPUnit tests.