Providing real-time events to applications
First Claim
Patent Images
1. A system, comprising:
- a hardware processor configured to;
receive, at one of a plurality of nodes in a system, a connection request from a first client device, wherein the connection request includes authentication information;
determine whether the first client device has previously connected to the system;
when the first client device has not previously connected to the system, authenticate the first client device using the authentication information contained in the connection request;
after the first client device is authenticated, generate an ephemeral identifier for the first client device by concatenating a node identifier with hashed identifying information of the first client device, wherein the node identifier uniquely identifies the node to which the first client device is connected to amongst the plurality of nodes in the system;
bind the first client device to the generated ephemeral identifier; and
create an entry in a distributed routing table for the first client device that includes the ephemeral identifier;
provide the entry to the plurality of nodes in the system to update the distributed routing table located on each of the plurality of nodes;
maintain an incoming message queue to store one or more communications received from a plurality of second client devices; and
deliver, via a secure channel, a first communication from the incoming message queue to the first client device based on the entry for the first client device in the distributed routing table; and
a memory coupled to the hardware processor and configured to provide the hardware processor with instructions.
4 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure describes systems and methods for an app provider to deliver information—such as notifications, alerts, messages, and other data—between client devices without the use of a third-party push token. When receivers are connected to the app provider system, the app provider will deliver a notification and the communication to the receivers without the use of a third-party push token. When receivers are not connected to the app provider system, the app provider may cache communications and notifications until the next time the receiver connects to the app provider.
385 Citations
15 Claims
-
1. A system, comprising:
a hardware processor configured to; receive, at one of a plurality of nodes in a system, a connection request from a first client device, wherein the connection request includes authentication information; determine whether the first client device has previously connected to the system; when the first client device has not previously connected to the system, authenticate the first client device using the authentication information contained in the connection request; after the first client device is authenticated, generate an ephemeral identifier for the first client device by concatenating a node identifier with hashed identifying information of the first client device, wherein the node identifier uniquely identifies the node to which the first client device is connected to amongst the plurality of nodes in the system; bind the first client device to the generated ephemeral identifier; and create an entry in a distributed routing table for the first client device that includes the ephemeral identifier; provide the entry to the plurality of nodes in the system to update the distributed routing table located on each of the plurality of nodes; maintain an incoming message queue to store one or more communications received from a plurality of second client devices; and deliver, via a secure channel, a first communication from the incoming message queue to the first client device based on the entry for the first client device in the distributed routing table; and a memory coupled to the hardware processor and configured to provide the hardware processor with instructions. - View Dependent Claims (2, 3, 4, 5)
-
6. A method comprising:
-
receiving, at one of a plurality of nodes in a system, a connection request from a first client device, wherein the connection request includes authentication information; determining, by one of a plurality of nodes in a system, whether the first client device has previously connected to the system; when the first client device has not previously connected to the system, authenticating the first client device using the authentication information contained in the connection request; after the first client device is authenticated, generating an ephemeral identifier for the first client device by concatenating a node identifier with hashed identifying information of the first client device, wherein the node identifier uniquely identifies the node to which the first client device is connected to amongst the plurality of nodes in the system; binding the first client device to the generated ephemeral identifier; creating an entry in a distributed routing table for the first client device that includes the ephemeral identifier; providing the entry to the plurality of nodes in the system to update the distributed routing table located on each of the plurality of nodes; maintaining an incoming message queue to store one or more communications received from a plurality of second client devices; and delivering, via a secure channel, a first communication from the incoming message queue to the first client device based on the entry for the first client device in the distributed routing table. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer-readable medium comprising instructions that when, executed by at least one hardware processor, perform the steps of:
-
receiving, at one of a plurality of nodes in a system, a connection request from a first client device, wherein the connection request includes authentication information; determining whether the first client device has previously connected to the system; when the first client device has not previously connected to the system, authenticating the first client device using the authentication information contained in the connection request; after the first client device is authenticated, generating an ephemeral identifier for the first client device by concatenating a node identifier with hashed identifying information of the first client device, wherein the node identifier uniquely identifies the node to which the first client device is connected to amongst the plurality of nodes in the system; binding the first client device to the generated ephemeral identifier; and creating an entry in a distributed routing table for the first client device that includes the ephemeral identifier; providing the entry to the plurality of nodes in the system to update the distributed routing table located on each of the plurality of nodes; maintaining an incoming message queue to store one or more communications received from a plurality of second client devices; and delivering, via a secure channel, a first communication from the incoming message queue to the first client device based on the entry for the first client device in the distributed routing table. - View Dependent Claims (12, 13, 14, 15)
-
Specification