public function acceptUdp($socket){
        $peer = null;
        $message = stream_socket_recvfrom($socket , $this->max_udp_packet_size, 0, $peer);
        
        //thundering herd EAGAIN (Resource temporarily unavailable)
        if(!$peer || $message === false || $message === ''){
            return false;
        }
        
        $local = stream_socket_get_name($socket, false);
        
        $event = new UdpMessageEvent(['message'=>$message, 'socket'=>$socket]);
        
        if($this->parser) {
            $message = call_user_func([$this->parser, 'decode'], $message, null);
        }
        
        $event->local = $local;
        $event->peer = $peer;
        
        $this->trigger(Server::ON_UDP_PACKET, $event);
    }