in registry/nacos/src/lib.rs [511:533]
fn event(&self, event: Arc<nacos_sdk::api::naming::NamingChangeEvent>) {
let service_name = event.service_name.clone();
let instances = event.instances.as_ref();
let urls: Vec<Url>;
if let Some(instances) = instances {
urls = instances
.iter()
.filter_map(|data| {
let url_str =
format!("triple://{}:{}/{}", data.ip(), data.port(), service_name);
Url::from_url(&url_str)
})
.collect();
} else {
urls = Vec::new();
}
let notify_event = ServiceEvent {
key: service_name,
action: String::from("CHANGE"),
service: urls,
};
self.0.notify(notify_event);
}