新增了事件消息处理，并重构了代码