anchor.diff:  ----
   
   
  -Additionally, _catacumba_ offers a a way to setup websocket handler directly, without additional step
  -on default handler:
  +Additionally, _catacumba_ offers a a way to set up a websocket handler directly, without an additional step
  +in the default handler:
   
   [source, clojure]
   ----
  
positive.code:                [:any #'echo-handler]]]))
  ----
  
  As you can observe, a function has additional metadata that indicates to _catacumba_ that that
  function is a websocket type handler, so _catacumba_ bootstraps the websocket connection for you.
  
  Is very important pass a var reference to the router instead of the function directly, because
  the metadata defined in the function is bound to the var and not to the function.
  
  Also, you can attach metadata inline, using the `with-meta` clojure builtin function:
  
  [source, clojure]
  ----
  
negative.code: ----
  
  All handlers in the route pipeline that are going after the session handler will come with `:session`
  key in the context with a "atom" like object. You just treat it as atom, so for attaching some data
  to the session you should use the well known `swap!` function:
  
  [source, clojure]
  