pub(crate) async fn serve( stream: TcpStream, websocket_in: Sender<Bytes>, websocket_out: Receiver<Bytes>, ) -> Result<()>