session

package
v0.0.0-...-43a0c9e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2015 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package session includes session related manipulations.

Wide server side needs maintain two kinds of sessions:

  1. HTTP session: mainly used for login authentication
  2. Wide session: browser tab open/refresh will create one, and associates with HTTP session

When a session gone: release all resources associated with it, such as running processes, event queues.

Index

Constants

This section is empty.

Variables

View Source
var (
	// SessionWS holds all session channels. <sid, *util.WSChannel>
	SessionWS = map[string]*util.WSChannel{}

	// EditorWS holds all editor channels. <sid, *util.WSChannel>
	EditorWS = map[string]*util.WSChannel{}

	// OutputWS holds all output channels. <sid, *util.WSChannel>
	OutputWS = map[string]*util.WSChannel{}

	// NotificationWS holds all notification channels. <sid, *util.WSChannel>
	NotificationWS = map[string]*util.WSChannel{}
)
View Source
var HTTPSession = sessions.NewCookieStore([]byte("BEYOND"))

HTTP session store.

View Source
var WideSessions wSessions

Wide sessions.

Functions

func FixedTimeRelease

func FixedTimeRelease()

FixedTimeRelease releases invalid sessions.

In some special cases (such as a browser uninterrupted refresh / refresh in the source code view) will occur some invalid sessions, the function checks and removes these invalid sessions periodically (1 hour).

Invalid sessions: sessions that not used within 30 minutes, refers to WideSession.Updated field.

func FixedTimeReport

func FixedTimeReport()

FixedTimeReport reports the Wide sessions status periodically (10 minutes).

func FixedTimeSave

func FixedTimeSave()

FixedTimeSave saves online users' configurations periodically (1 minute).

Main goal of this function is to save user session content, for restoring session content while user open Wide next time.

func LoginHandler

func LoginHandler(w http.ResponseWriter, r *http.Request)

LoginHandler handles request of user login.

func LogoutHandler

func LogoutHandler(w http.ResponseWriter, r *http.Request)

LogoutHandler handles request of user logout (exit).

func PreferenceHandler

func PreferenceHandler(w http.ResponseWriter, r *http.Request)

PreferenceHandler handles request of preference page.

func SaveContent

func SaveContent(w http.ResponseWriter, r *http.Request)

SaveContent handles request of session content string.

func SignUpUser

func SignUpUser(w http.ResponseWriter, r *http.Request)

SignUpUser handles request of registering user.

func WSHandler

func WSHandler(w http.ResponseWriter, r *http.Request)

WSHandler handles request of creating session channel.

When a channel closed, releases all resources associated with it.

Types

type WideSession

type WideSession struct {
	ID          string                     // id
	Username    string                     // username
	HTTPSession *sessions.Session          // HTTP session related
	Processes   []*os.Process              // process set
	EventQueue  *event.UserEventQueue      // event queue
	State       int                        // state
	Content     *conf.LatestSessionContent // the latest session content
	Created     time.Time                  // create time
	Updated     time.Time                  // the latest use time
}

WideSession represents a session associated with a browser tab.

func (*WideSession) Refresh

func (s *WideSession) Refresh()

Refresh refreshes the channel by updating its use time.

func (*WideSession) SetProcesses

func (s *WideSession) SetProcesses(ps []*os.Process)

SetProcesses binds process set with the wide session.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL