session

package
v0.0.0-...-5259b54 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2015 License: Apache-2.0 Imports: 23 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{}

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

HTTP session store.

View Source
var WideSessions wSessions

Wide sessions.

Functions

func CanAccess

func CanAccess(username, path string) bool

CanAccess determines whether the user specified by the given username can access the specified path.

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 SaveContentHandler

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

SaveContentHandler handles request of session content string.

func SignUpUserHandler

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

SignUpUserHandler 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
	FileWatcher *fsnotify.Watcher          // files change watcher
	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