anchor.diff:  
   (defmethod ws:resource-received-frame ((res chat-server) client message)
     (format t "~&Received resource frame.~%")
  -  (if (client-session res client)
  +  (if (client-session client)
         (process-client-message res client message)
         (validate-client res client message)))
   
  
positive.code: ;; * group actions and dialog by user.
  ;; * Use (CONT'D.)
  
  ;; WebSockets
  ;; * Figure out how to validate http sessions vs websocket connections.  This can possibly be done
  ;;   by grabbing the hunchentoot cookie from the websocket, sending the user-agent in through the
  ;;   onopen() event, and then reconstructing a request object and passing it to HT's
  ;;   validate-session. http://paste.lisp.org/display/120622
  ;;
  ;; clws issues
  ;; * Doesn't work on CCL.
  ;; * client accessors aren't exported.
  
negative.code:   (let* ((action-obj (jsown:parse message))
           (action (cdr (assoc "action" (cdr action-obj) :test #'string=)))
           (dialogue (cdr (assoc "dialogue" (cdr action-obj) :test #'string=)))
           (user-action (add-user-action (client-username client) action dialogue)))
      (loop for (nil . session) in (session-db *server*)
         for c = (session-value 'websocket-client session)
         when c
         do (ws:write-to-client c (with-yaclml-output-to-string
                                    (render-user-action user-action))))))
  
  