IP Library › Granted Patent US 10,686,884
Granted Patent B2
US 10,686,884 · App. 15/654,522 · Granted Jun 16, 2020

Method for managing sessions using web sockets

Inventor: Kenneth Scott Bowden (Fort Lauderdale, FL)
Assignee: Citrix Systems, Inc.
H04L67/14H04L67/143H04L69/327H04L67/02H04L67/1095
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,686,884
App. No.
15/654,522
Filed
Jul 19, 2017
Granted
Jun 16, 2020
Kind
B2
Art Unit
2441
USPC
709/227
Abstract

This disclosure is directed to embodiments of systems and methods for tracking sessions of a user. A session manager executing on a server may establish a plurality of sessions with a web application for a user via a web socket of the session manager. The plurality of sessions may share a first session identifier. The session manager may track, by via a web socket container established for the first session identifier, the plurality of sessions. The session manager may detect a log off by the user from one of the plurality of sessions. The session manager may send a log off event to others of the plurality of sessions tracked via the web socket container, responsive to the detection.

Claims (37)

1. A method for tracking sessions of a user, the method comprising:

establishing, by a session manager executing on a server, a plurality of sessions with a web application for a plurality of types of client devices of a user via a web socket of the session manager, the plurality of sessions sharing a first session identifier;

tracking, by the session manager via a web socket container established for the first session identifier, the plurality of sessions;

receiving, by the session manager, a request from a first client device of a first client type of the plurality of types of client devices, to establish another session with the web application;

detecting, by the session manager according to a defined rule, that a maximum number of sessions for the first client type has been reached; and

determining, by the session manager according to the defined rule, to reject the request to establish the another session with the web application, or to cause another client device of the first client type to log off and close one of the plurality of sessions tracked via the web socket container, responsive to detecting that the maximum number of sessions for the first client type has been reached.

2. The method of claim 1 , further comprising establishing the another session corresponding to the session identifier after authentication.

3. The method of claim 1 , further comprising establishing, by the session manager, the web socket container for the first session identifier, the web socket container including a connection between the client device and the web socket of the session manager for each of the plurality of sessions established with the web application.

4. The method of claim 1 , comprising detecting, by the session manager using the web socket container, a log off by the user from one of the plurality of sessions.

5. The method of claim 1 , further comprising determining, by the session manager in response to the detection, that at least one of the plurality of sessions tracked via the web socket container have become invalid.

6. The method of claim 1 , wherein establishing the plurality of sessions with the web application comprises establishing at least one of: one or more windows or one or more tabs of a web browser executing on a client device of the user.

7. The method of claim 1 , wherein the defined rule is configured for one or more of the user, the web application, or a client device of the user.

8. The method of claim 1 , wherein each of the plurality of sessions is established for the user using a client device of a different client type, including the first client type.

9. The method of claim 8 , wherein the maximum number of sessions for the first client type is one, according to the defined rule.

10. The method of claim 9 , further comprising detecting, by the session manager, that the web socket container includes an existing session between a client device of the first client type with the web socket of the session manager, and one of:

rejecting, by the session manager responsive to the detection, the request to establish the another session for the user; or

causing, by the session manager responsive to the detection, a log off associated with the existing session.

11. A system for tracking sessions of a user, the system comprising:

a device configured to host a web socket container for maintaining a plurality of sessions established with a web application for a user; and

a session manager of the device, the session manager configured to:

establish the plurality of sessions via a web socket of the session manager, the plurality of sessions sharing a first session identifier;

track the plurality of sessions via the web socket container, the web socket container established for the first session identifier;

receive a request from a first client device of a first client type of a plurality of types of client devices, to establish another session with the web application;

detect according to a defined rule, that a maximum number of sessions for the first client type has been reached; and

determine according to the defined rule, to reject the request to establish the another session with the web application, or to cause another client device of the first client type to log off and close one of the plurality of sessions tracked via the web socket container, responsive to detecting that the maximum number of sessions for the first client type has been reached.

12. The system of claim 11 , wherein the session manager is further configured to establish the another session corresponding to the session identifier after authentication.

13. The system of claim 11 , wherein the session manager is further configured to establish the web socket container for the first session identifier, the web socket container including a connection between the client device and the web socket of the session manager for each of the plurality of sessions established with the web application.

14. The system of claim 11 , wherein the session manager is further configured to detect, using the web socket container, a log off by the user from one of the plurality of sessions.

15. The system of claim 11 , wherein the session manager is further configured to determine, in response to the detection, that at least one of the plurality of sessions tracked via the web socket container have become invalid.

16. The system of claim 11 , wherein the session manager is further configured to establish the plurality of sessions with the web application by establishing at least one of: one or more windows or one or more tabs of a web browser executing on a client device of the user.

17. The system of claim 11 , wherein the defined rule is configured for one or more of the user, the web application, or the client device.

18. The system of claim 11 , wherein each of the plurality of sessions is established for the user using a client device of a different client type, including the first client type.

19. The system of claim 18 , wherein the maximum number of sessions for the first client type is one, according to the defined rule.

20. The system of claim 19 , wherein the session manager is further configured to:

detect that the web socket container includes an existing session between a client device of the first client type with the web socket of the session manager, and one of:

reject, responsive to the detection, the request to establish the another session for the user; or

cause, responsive to the detection, a log off associated with the existing session.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2017
From: BOWDEN, KENNETH SCOTT
To: CITRIX SYSTEMS, INC.
Reel/Frame 043057/0680 →
Continuity (1)
Related Publication 20190028550A1 · Jan 24, 2019