awesome socket api for both client and server side