code: function(sid, frontendId, socket, service) {
    EventEmitter.call(this);
    this.id = sid;          // r
    this.frontendId = frontendId; // r
    this.uid = null;        // r
    this.settings = {};
  
    // private
    this.__socket__ = socket;
    this.__sessionService__ = service;
    this.__state__ = ST_INITED;
  }
docs: Session maintains the relationship between client connection and user information.
  There is a session associated with each client connection. And it should bind to a
  user id after the client passes the identification.
  
  Session is created in frontend server and should not be accessed in handler.
  There is a proxy class called BackendSession in backend servers and FrontendSession
  in frontend servers.