a demo app use socket.io