Register a session and return the `Receiver` end of its delivery channel. The sync listener drains this in its send loop.
(&self, session_id: String)
| 58 | /// Register a session and return the `Receiver` end of its delivery |
| 59 | /// channel. The sync listener drains this in its send loop. |
| 60 | pub fn register(&self, session_id: String) -> mpsc::Receiver<ArrayFrame> { |
| 61 | let (tx, rx) = mpsc::channel(CHANNEL_CAPACITY); |
| 62 | let mut sessions = self.sessions.write().unwrap_or_else(|p| p.into_inner()); |
| 63 | sessions.insert(session_id.clone(), tx); |
| 64 | self.sessions_registered.fetch_add(1, Ordering::Relaxed); |
| 65 | info!(session = %session_id, "array_delivery: session registered"); |
| 66 | rx |
| 67 | } |
| 68 | |
| 69 | /// Unregister a disconnected session and drop its sender. |
| 70 | pub fn unregister(&self, session_id: &str) { |