Handler 하나로 부족
Echo 서버는 connect 한 클라랑만 말해. 더 흥미로운 거 — chat, broadcast, presence — 는 서버가 *여러* connection 을 동시에 알아야 해. 패턴은 connection manager 도입: 열린 socket 추적하는 작은 singleton, application 이 신경쓰는 거 (room, user, channel) 로 indexed.
최소 manager
room 이름을 WebSocket 객체 set 에 매핑하는 dict 면 대부분 케이스 커버. 직접 메시징 필요하면 user-id 추적 추가. observability 필요하면 metadata (connected_at, ip) 추가. 각 추가가 점진적.
Broadcast 중 죽은 connection 처리
room 의 set 을 broadcast 위해 iterate 할 때쯤 일부 socket 은 이미 half-dead (network drop, 미감지). 모든 send 호출 wrap; dead ref 모으고; loop 후 drop. iteration 중 set mutate 금지.