Reworking socket.io.play

Hi,

I have made a huge pull request, I know it's a lot of work for you. But this is my first pull request and I didn't know better.

Looking forward to hearing your feedback.

Thanks for your co-operation.

Regards,

Saurabh Rawat