anchor.diff:  * and 6 specifications with minor updates : *+JPA 2.1+*, *+Servlet 3.1+*, *+EJB 3.2+*, *+CDI 1.1+*, *+JSF 2.2+* and *+Bean Validation 1.1+*
   
   
  -== DEMO : AngularJS HTML5/JSR-356 API application deployed on WildFly 8 (OpenShift)
  +== DEMO : AngularJS - HTML5 / JSR-356 API application deployed on WildFly 8 (OpenShift)
   
   If you want to see right away what it looks like, you can access +{link-demo}[the online application]+ whose code will be in part explained in this article.
   It's an application that give you the ability :
  
positive.code: 
  As shown in the diagram below, the *WebSocket protocol works in two phases* named :
  
  . *+handshake+*
  . *+data transfer+*
  
  [[websocket_protocol]]
  
negative.code: Once the *handshake* is approved, the use of WebSocket protocol is established. There are an open connection on the 'peer server side' as well on the 'peer client side', callback handlers are called to initiate the communication. + 
  The *Data transfer* can now begin, so the 2 peers can exchange messages in a bidirectionnal and full-duplex communication.
  
  As shown in the diagram named *Figure 3*, the +peer server+ can send multiple messages ('in this example : 1 message to each point of the game, 1 message each time any user bet on this game and 1 message at the end of the match') without any +peer client+ response and the peer client can also send messages at any time ('in this example : betting on the winner of the match').
  Each peer can send a specific message to close the connection. +
  
  With Java EE7 Platform, the +peer server side+ code is written in *Java* while the +peer client side+ code is in *Java or Javascript*.
  
  === Closing Handshake
  
  This phase *can be initiated by both peer*. A peer that want to close the communication need to send a *close control frame* and it will received a close control frame too as a response.
  
  == WebSocket Javascript API (Client)
  
  