Class PerspectiveSessionCollection
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.perspective.gateway.session.PerspectiveSessionCollection
- All Implemented Interfaces:
- EventListener,- javax.servlet.http.HttpSessionBindingListener,- javax.servlet.http.HttpSessionIdListener
public class PerspectiveSessionCollection
extends AbstractLifecycle
implements javax.servlet.http.HttpSessionBindingListener, javax.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 SummaryNested Classes
- 
Field SummaryFieldsModifier 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 SummaryModifier and TypeMethodDescriptionbuilder()findProjectSession(String project) com.inductiveautomation.ignition.common.gson.GsongetGson()Optional<javax.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.getOrCreateSession(String projectName) Fetch theInternalSessionassociated with the given project name and version or create one if it does not exist in this session collection.getOrCreateSession(String projectName, UUID sessionId) getScope()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(javax.servlet.http.HttpSessionEvent event, String oldSessionId) voidsetRecentBytesSent(Long recentBytesSent) voidReceived challenge response from mobile devicevoidvalueBound(javax.servlet.http.HttpSessionBindingEvent event) voidvalueUnbound(javax.servlet.http.HttpSessionBindingEvent event) Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycleisRunning, shutdown, startup
- 
Field Details- 
SESSION_KEYThis is the name ( "perspective-session" ) used to store this object on an HttpSession- See Also:
 
- 
context
- 
uuidUUID to help keep track of sessions by session monitor.
- 
scope"scope" of this session - Client or Designer
 
- 
- 
Method Details- 
getRemoteHost
- 
getRemoteAddr
- 
getGsonpublic com.inductiveautomation.ignition.common.gson.Gson getGson()
- 
getLocaleReturns 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
 
- 
isValidMobilepublic boolean isValidMobile()
- 
isValidWorkstationpublic boolean isValidWorkstation()
- 
isBrokeredAuthpublic boolean isBrokeredAuth()
- 
getDevice
- 
validateReceived challenge response from mobile device
- 
getLocalesReturns 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
 
- 
getOrCreateSessionFetch 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
- 
valueBoundpublic void valueBound(javax.servlet.http.HttpSessionBindingEvent event) - Specified by:
- valueBoundin interface- javax.servlet.http.HttpSessionBindingListener
 
- 
valueUnboundpublic void valueUnbound(javax.servlet.http.HttpSessionBindingEvent event) - Specified by:
- valueUnboundin interface- javax.servlet.http.HttpSessionBindingListener
 
- 
getHttpSession
- 
sessionIdChanged- Specified by:
- sessionIdChangedin interface- javax.servlet.http.HttpSessionIdListener
 
- 
onStartupprotected void onStartup()- Specified by:
- onStartupin class- AbstractLifecycle
 
- 
onShutdownpublic void onShutdown()Stops any ongoing processes running as part of the project running in this session.- Specified by:
- onShutdownin class- AbstractLifecycle
 
- 
notifyConnected
- 
notifyDisconnected
- 
receive
- 
handleLogsCalled when the client has POSTed log messages back to the server.
- 
builder
- 
getSecurityZones
- 
getTotalBytesSent
- 
getRecentBytesSent
- 
setRecentBytesSent
 
-