implemented realtime communication with Socket.IO