6 Maintaining Client State




                    
            英文官网参考:
                     http://docs.oracle.com/javaee/7/tutorial/doc/websocket006.htm


            中文解析:

                    因为容器为每一个连接初始化一个endpoint对象,你就可以定义和使用实例化变量来存储客户端状态信息。另外Session.getUserProperties 方法提供一个可编辑的Map存储用户信息。比如下面这个例子 就是利用从客户端接收到的上一条历史消息作为回复消息(但是例子和文字解释不吻合:所以贴上英文原文 For example, the following endpoint replies to incoming text messages with the contents of the previous message from each client)。

@ServerEndpoint("/delayedecho")
public class DelayedEchoEndpoint {
   @OnOpen
   public void open(Session session) {
      session.getUserProperties().put("previousMsg", " ");
   }
   @OnMessage
   public void message(Session session, String msg) {
      String prev = (String) session.getUserProperties()
                                    .get("previousMsg");
      session.getUserProperties().put("previousMsg", msg);
      try {
         session.getBasicRemote().sendText(prev);
      } catch (IOException e) { ... }
   }
}
                    为了存储所有的客户端信息,你可以使用类(静态)。但是一定要确保访问的时候  线程安全。





你可能感兴趣的:(java,html5,object,websocket,ee)