add socketio function