Abstract:
In an example implementation of the disclosed technology, a method includes assigning a computing device to a region associated with a region server that comprises a plurality of region server instances. The method also includes generating device-to-region mapping and transmitting a replica of the device-to-region mapping to a messaging server instance and connection server instance. Further, the method includes receiving local device connection information comprising connection information relating the computing device and the connection server instance. The method also includes outputting the local device connection information to the plurality of region server instances. Additionally, the method includes receiving a message for delivery to the computing device and, responsive to accessing the local device connection information, transmitting the message to the connection server instance identified by the local device connection information.
Abstract:
The disclosed technology covers messaging systems and methods. An example messaging system may include a messaging server, a plurality of predetermined conditions, and a communication interface. The messaging server may receive one or more messages directed to a first computing device, and may assign a priority level to each of the messages. The plurality of predetermined conditions may determine when to transmit the one or more messages to the first computing device, and a first predetermined condition may be deemed met when at least one message directed toward the first computing device is assigned high priority. The communication interface may transmit the one or more messages to the first computing device if at least one of the predetermined conditions is met. The messaging server may repeatedly evaluate the predetermined conditions and may hold the one or more messages until at least one of the predetermined conditions is met.
Abstract:
Systems, methods and computer readable media for delivery of notifications to devices without appropriate applications installed are disclosed. In some implementations, the systems, methods and computer readable media can deliver a notification message and process a response via an alternate mode when an appropriate application is not installed.
Abstract:
The disclosed technology covers messaging systems and methods, and computer program products embodying such systems and methods. An example computer-implemented method includes receiving, at a message server, a plurality of messages for a plurality of remote mobile devices; and providing a single network connection between the message server and a first mobile device of the plurality of mobile devices. The first mobile device may have a first user profile and a second user profile, each with its own applications and preferences. The method may include associating the first user profile with a first user identifier, and the second user profile with a second identifier. When a message is received, and directed toward the first user profile, the method may include packaging the first message with the first user identifier, and transmitting the first message, along with the first user identifier, to the first mobile device.
Abstract:
The disclosed technology covers messaging systems and methods, and computer program products embodying such systems and methods. An example computer-implemented method includes receiving, at a message server, a plurality of messages for a plurality of remote mobile devices; and providing a single network connection between the message server and a first mobile device of the plurality of mobile devices. The first mobile device may have a first user profile and a second user profile, each with its own applications and preferences. The method may include associating the first user profile with a first user identifier, and the second user profile with a second identifier. When a message is received, and directed toward the first user profile, the method may include packaging the first message with the first user identifier, and transmitting the first message, along with the first user identifier, to the first mobile device.
Abstract:
Implementations may include automatically initiating modification of one or more configuration values of a remote computing device, the configuration values determining how status messages are sent from the remote computing device. The status messages may be sent either at the prompting of a messaging server or, alternatively, autonomously by the computing device. The status message may indicate the state of the computing device, for example, one or more of “awake,” “active,” “idle,” etc., a current battery level, whether the computing device is fully charged or is plugged into an external power source, whether the radio is currently active, current location, the type of network on which the computing device is being used (e.g., Wi-Fi, 3G, 3G). The modifications to the configuration values may be based on, among other things, location, user behavior, or device usage patterns, thus enabling efficient scheduling of push notification delivery based on the modified configurations.
Abstract:
The disclosed technology covers messaging systems and methods, and computer program products embodying such systems and methods. An example computer-implemented method includes receiving, at a message server, a plurality of messages for a plurality of remote mobile devices; and providing a single network connection between the message server and a first mobile device of the plurality of mobile devices. The first mobile device may have a first user profile and a second user profile, each with its own applications and preferences. The method may include associating the first user profile with a first user identifier, and the second user profile with a second identifier. When a message is received, and directed toward the first user profile, the method may include packaging the first message with the first user identifier, and transmitting the first message, along with the first user identifier, to the first mobile device.
Abstract:
The disclosed technology covers messaging systems and methods, and computer program products embodying such systems and methods. A computer program product may include a computer-readable storage medium with instructions executable by one or more processors to perform a method. The method may include receiving, at a message server configured to receive a plurality of messages for a plurality of computing devices, a first message intended for a first user profile. The first user profile and one or more other user profiles may exist on a single computing device. The method may also include receiving a first status update from the first computing device indicating that the first user profile is stopped or non-active, and postponing delivery of the first message to the first computing device, based on the first user profile being stopped or non-active. These and other aspects of messaging systems, methods, and computer program products are disclosed herein.
Abstract:
In an example implementation of the disclosed technology, a method includes predicting, by a computing device, a destination server that is predicted to be the destination of a message from a sending device connected to the computing device. The method also includes determining whether a connection exists between the computing device and the destination server. The method also includes, responsive to determining that no connection exists, determining a connection and caching the connection at the computing device. The method also includes, responsive to receiving a message for dispatch to the destination server, dispatching the message to the destination server via the connection.
Abstract:
The disclosed technology covers messaging systems and methods. An example messaging method includes receiving at a message server a plurality of messages for a plurality of computing devices, including a first computing device. A first set of the messages is identified as being directed to the first computing device, for which state information is received. A set of predetermined rules is applied to that state information. A return value is determined, with a computer processor, based on the application of the rules to the current state information. The first set of messages is then transmitted to the first computing device if the return value is a first value. Alternatively, the first set of messages is held for the time being if the return value is a second value.