У меня есть базовый c сервер с ws-rs, который содержит список соединений. Когда соединение закрывается, я хотел бы иметь возможность определить, какое это соединение, и удалить его из списка.
Я бы хотел добиться чего-то вроде этого:
extern crate ws; // 0.9.1
use ws::{listen, CloseCode, Handler, Sender};
struct Connection {
ip: String,
}
struct MyHandler {
out: Sender,
connections: Vec<Connection>,
}
impl Handler for MyHandler {
fn on_close(&mut self, code: CloseCode, reason: &str) {
// here I'd like to identify the connection
// but there doesn't seem to be any interface for it
}
}
fn main() {
listen("127.0.0.1:8001", |out| MyHandler {
out,
connections: Vec::new(),
})
.unwrap();
}
Я чувствую, что достаточно просто сохранить список соединений, и я упускаю что-то очевидное. Я не могу найти какие-либо ресурсы в Интернете об этом.