Backup-bdg's picture
Upload 964 files
51ff9e5 verified

Session Management

Socket.io is used as the underlying protocol for client server communication. This allows the event handlers in the code to be somewhat separate from the connection management - so brief connection interruptions are recoverable.

There are 3 main server side event handlers:

  • connect - Invoked when a new connection to the server is established. (This may be via http or WebSocket)
  • oh_user_action - Invoked when a connected client sends an event (such as a prompt for the Agent) - this is distinct from the oh_event sent from the server to the client.
  • disconnect - Invoked when a connected client disconnects from the server.

Disconnect

The (manager)[manager.py] manages connections and sessions. Each session may have zero or more connections associated with it. When a session no longer has any connections associated with it, after a set amount of time (determined by config.sandbox.close_delay), the session and runtime are passivated (So will need to be rehydrated to continue.)