Class PerspectiveSessionCollection
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.perspective.gateway.session.PerspectiveSessionCollection
- All Implemented Interfaces:
Lifecycle,jakarta.servlet.http.HttpSessionBindingListener,jakarta.servlet.http.HttpSessionIdListener,EventListener
public class PerspectiveSessionCollection
extends AbstractLifecycle
implements jakarta.servlet.http.HttpSessionBindingListener, jakarta.servlet.http.HttpSessionIdListener
This is the top level of session object for a collection of "project" sessions. A given "auth
session" (which correlates to a browser instance) can run multiple projects simultaneously
because of tabbed browsing.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal PerspectiveContextfinal SessionScope"scope" of this session - Client or Designerstatic final StringThis is the name ( "perspective-session" ) used to store this object on an HttpSessionfinal StringUUID to help keep track of sessions by session monitor. -
Method Summary
Modifier and TypeMethodDescriptionstatic @NonNull PerspectiveSessionCollection.Builderbuilder()@NonNull Optional<InternalSession>findProjectSession(@NonNull String project) static com.inductiveautomation.ignition.common.gson.JsonObjectgetDefaultProps(ComponentRegistry registry) com.inductiveautomation.ignition.common.gson.GsongetGson()Optional<jakarta.servlet.http.HttpSession>Returns the preferredLocalethat the client will accept content in, based on the Accept-Language header.Returns aListofLocaleobjects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header in the request which created this session.@NonNull InternalSessiongetOrCreateSession(@NonNull String projectName) Fetch theInternalSessionassociated with the given project name and version or create one if it does not exist in this session collection.@NonNull InternalSessiongetOrCreateSession(@NonNull String projectName, UUID sessionId) getScope()@NonNull com.google.common.collect.ImmutableCollection<String>voidhandleLogs(LogMessage log) Called when the client has POSTed log messages back to the server.booleanbooleanbooleanvoidnotifyConnected(MessageChannel channel) voidnotifyDisconnected(MessageChannel channel) voidStops any ongoing processes running as part of the project running in this session.protected voidvoidreceive(MessageChannel channel, String protocol, Reader payload) voidsessionIdChanged(jakarta.servlet.http.HttpSessionEvent event, String oldSessionId) voidsetRecentBytesSent(Long recentBytesSent) voidReceived challenge response from mobile devicevoidvalueBound(jakarta.servlet.http.HttpSessionBindingEvent event) voidvalueUnbound(jakarta.servlet.http.HttpSessionBindingEvent event) Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup
-
Field Details
-
SESSION_KEY
This is the name ( "perspective-session" ) used to store this object on an HttpSession- See Also:
-
context
-
uuid
UUID to help keep track of sessions by session monitor. -
scope
"scope" of this session - Client or Designer
-
-
Method Details
-
getRemoteHost
-
getRemoteAddr
-
getGson
public com.inductiveautomation.ignition.common.gson.Gson getGson() -
getLocale
Returns the preferredLocalethat the client will accept content in, based on the Accept-Language header. If the client request doesn't provide an Accept-Language header, this method returns the default locale for the server.- Returns:
- the preferred
Localefor the client
-
isValidMobile
public boolean isValidMobile() -
isValidWorkstation
public boolean isValidWorkstation() -
isBrokeredAuth
public boolean isBrokeredAuth() -
getDevice
-
validate
Received challenge response from mobile device -
getLocales
Returns aListofLocaleobjects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header in the request which created this session. If the client request doesn't provide an Accept-Language header, this method returns aListcontaining oneLocale, the default locale for the server.- Returns:
- a
Listof preferredLocaleobjects for the client
-
getOrCreateSession
Fetch theInternalSessionassociated with the given project name and version or create one if it does not exist in this session collection.- Parameters:
projectName- the project name- Returns:
- the
InternalSessionassociated with the given project name and version in a running state
-
getOrCreateSession
-
findProjectSession
-
getScope
-
getContext
-
valueBound
public void valueBound(jakarta.servlet.http.HttpSessionBindingEvent event) - Specified by:
valueBoundin interfacejakarta.servlet.http.HttpSessionBindingListener
-
valueUnbound
public void valueUnbound(jakarta.servlet.http.HttpSessionBindingEvent event) - Specified by:
valueUnboundin interfacejakarta.servlet.http.HttpSessionBindingListener
-
getHttpSession
-
sessionIdChanged
- Specified by:
sessionIdChangedin interfacejakarta.servlet.http.HttpSessionIdListener
-
onStartup
protected void onStartup()- Specified by:
onStartupin classAbstractLifecycle
-
onShutdown
public void onShutdown()Stops any ongoing processes running as part of the project running in this session.- Specified by:
onShutdownin classAbstractLifecycle
-
notifyConnected
-
notifyDisconnected
-
receive
-
handleLogs
Called when the client has POSTed log messages back to the server. -
getDefaultProps
public static com.inductiveautomation.ignition.common.gson.JsonObject getDefaultProps(ComponentRegistry registry) -
builder
-
getSecurityZones
-
getTotalBytesSent
-
getRecentBytesSent
-
setRecentBytesSent
-