A method, comprising: receiving, from a sender user device at a group messaging engine operable on a social network server , message data associated with a message to be sent to a recipient operating a recipient user device ; determining, based on connection information for the recipient user device , whether a first data channel is available for sending the message to the recipient via a group messaging engine , the group messaging engine using a first messaging protocol to exchange messages between two or more users, wherein the connection information is generated by a connection server testing whether an open data connection exists between the recipient user device and the connection server by sending via a network data connection a verification echo request to the recipient user device , and if the open data connection is active, confirming by the recipient user device receipt of the verification echo request by sending a confirmation echo reply via the network data connection to the connection server ; responsive to determining that the first data channel is available, transmitting the message via the group messaging engine using the first data channel and the first messaging protocol to the recipient user device ; responsive to determining that the first data channel is not available, determining whether a predetermined user setting indicates a pre-selection by a user of a second data channel for sending the message via the group messaging engine when the first data channel is not available; and responsive to determining that a predetermined user setting indicates the pre-selection by the user of the second data channel for sending the message via the group messaging engine when the first data channel is not available, transmitting the message via the group messaging engine using the pre-selected second data channel and a second messaging protocol to the recipient user device . receiving, from a sender user device at a group messaging engine operable on a social network server , message data associated with a message to be sent to a recipient operating a recipient user device ; determining, based on connection information for the recipient user device , whether a first data channel is available for sending the message to the recipient via a group messaging engine , the group messaging engine using a first messaging protocol to exchange messages between two or more users, wherein the connection information is generated by a connection server testing whether an open data connection exists between the recipient user device and the connection server by sending via a network data connection a verification echo request to the recipient user device , and if the open data connection is active, confirming by the recipient user device receipt of the verification echo request by sending a confirmation echo reply via the network data connection to the connection server ; responsive to determining that the first data channel is available, transmitting the message via the group messaging engine using the first data channel and the first messaging protocol to the recipient user device ; responsive to determining that the first data channel is not available, determining whether a predetermined user setting indicates a pre-selection by a user of a second data channel for sending the message via the group messaging engine when the first data channel is not available; and responsive to determining that a predetermined user setting indicates the pre-selection by the user of the second data channel for sending the message via the group messaging engine when the first data channel is not available, transmitting the message via the group messaging engine using the pre-selected second data channel and a second messaging protocol to the recipient user device . <EOS>