improve long pulling for event listener