code: public WebSocketEventStream events(Token token, long sessionIdleTimeout, long idleTimeout,
                         int maxMsgSize, EventListener... listeners) throws SaltException {
          return new WebSocketEventStream(uri, token, sessionIdleTimeout, idleTimeout, maxMsgSize, listeners);
      }
docs: Returns a WebSocket @ClientEndpoint annotated object connected
  to the /ws ServerEndpoint.
  <p>
  The stream object supports the {@link WebSocketEventStream} interface which allows the caller
  to register/unregister for stream event notifications as well as close the event
  stream.
  <p>
  Note: {@link SaltClient#login(String, String, AuthModule)} or must be called prior
  to calling this method.
  <p>
  {@code GET /events}
  
  @param listeners event listeners to be added before the stream is initialized
  @param idleTimeout idle timeout to pass to the http client config
  @param maxMsgSize maximum event data size to accept
  @param sessionIdleTimeout session idle timeout to pass to the http client config
  @param token salt session token to use for authentication
  @return the event stream
  @throws SaltException in case of an error during websocket stream initialization