webSessionobjectwebui.t[145]

Web UI Session object. This keeps track of miscellaneous items associated with the game session.

transient webSession :   object

Superclass Tree   (in declaration order)

webSession
        object

Summary of Properties  

clientSessions  collabKey  everHadClient  hkTime  lastClientTime  launcherGameID  launcherUsername  server  sessionKey  storageSID 

Summary of Methods  

addClient  connectUI  getCollabUrl  getFullUrl  housekeeping  removeClient  validateKey 

Properties  

clientSessionswebui.t[272]

list of active client sessions (ClientSession objects)

collabKeywebui.t[199]
The collaborative session key. This is a secondary session key that allows additional users to connect to the session for collaborative play.

everHadClientwebui.t[352]
have we ever had a client connection?

hkTimewebui.t[346]
system time (ms ticks) of next scheduled housekeeping pass

lastClientTimewebui.t[349]
the last time we noticed that we had a client connected

launcherGameIDwebui.t[236]
The launcher's game ID. This is the ID passed from the web server that launched the game, to let us know how the game is identified in the launcher database. This is typically an IFDB TUID string.

launcherUsernamewebui.t[243]
The launcher's user name. This is passed from the web server that launched the game, to let us know the host user's screen name. We use this as the user's default screen name in multi-user games.

serverwebui.t[290]
the HTTPServer object running our web session

sessionKeywebui.t[192]
The session key. This identifies the server as a whole, and is essentially an authentication mechanism that lets clients prove they got our address from an authorized source (rather than just stumbling across it via a port scan, say). Clients must hand this to us on each request, either via a URL query parameter or via a cookie. The normal setup (via WebResourceInit) is for the client to send us the key as a URL parameter on the initial request, at which point we'll pass it back as a set-cookie, removing the need for the client to include the key in subsequent URLs.

The key is just a random number that's long enough that an interloper couldn't hope to guess it. We generate this on the first evaluation, and it remains fixed at that point for as long as we're running.

storageSIDwebui.t[257]
The primary storage server session ID, for the user who launched the server. If the user who launched the game logged in to a cloud storage server, this is the session ID that we use to transact business with the server on behalf of this logged-in user. This token identifies and authenticates the user, but it's ephemeral and it's only valid for the current game server session, so it's not quite like a password. This is the session for the launch user only; if other collaborative users join, they can get their own session IDs that will allow them to store files under their own private user folders on the server.

Methods  

addClient (s)webui.t[275]

add a client session

connectUI (srv)webui.t[160]
Connect to the UI. By default, we ask the webMainWin object to establish a connection, and we save the server object internally for future reference.

getCollabUrl ( )webui.t[264]
Get the collaborative player launch URL. This is a URL that the host can send to other players who wish to join the session as collaborative users.

getFullUrl (resname)webui.t[149]
Get the full URL to the given resource.

housekeeping ( )webui.t[297]
Run housekeeping tasks. The network event processor calls this periodically to let us perform background cleanup tasks. Returns the system tick time of the next housekeeping run.

removeClient (s)webui.t[283]
remove a client session

validateKey (req, query)webui.t[204]
Validate a session key sent from the client

TADS 3 Library Manual
Generated on 5/16/2013 from TADS version 3.1.3