A method comprising: receiving, by a first computing device, an indication of a user input to send, using an application currently executing at the first computing device, one or more data packets to a second computing device; responsive to receiving the indication of the user input, determining, by the first computing device, a signal strength of a first wireless communication connection to the second computing device, wherein the first wireless communication connection comprises one of a cellular network connection or a wireless local area network connection; determining, by the first computing device, whether the signal strength of the first wireless communication connection satisfies a threshold signal strength level; responsive to determining that the signal strength does not satisfy the threshold signal strength level: automatically establishing, by the first computing device, a second wireless communication connection (20, 75) to the second computing device, wherein the second wireless communication connection includes a mesh network and uses a different wireless communication protocol than the first wireless communication connection; and sending, by the first computing device, to the second computing device, and via the second wireless communication connection (20, 75), the one or more data packets, wherein the one or more data packets comprise a first set of data packets; and, after sending the first set of packets via the second wireless communication connection (20, 75): receiving, by the first computing device, from the second computing device, and via the first wireless communication connection, a second set of data packets; and responsive to receiving the second set of data packets, automatically disconnecting, by the first computing device, from the second wireless communication connection (20, 75). receiving, by a first computing device, an indication of a user input to send, using an application currently executing at the first computing device, one or more data packets to a second computing device; responsive to receiving the indication of the user input, determining, by the first computing device, a signal strength of a first wireless communication connection to the second computing device, wherein the first wireless communication connection comprises one of a cellular network connection or a wireless local area network connection; determining, by the first computing device, whether the signal strength of the first wireless communication connection satisfies a threshold signal strength level; responsive to determining that the signal strength does not satisfy the threshold signal strength level: automatically establishing, by the first computing device, a second wireless communication connection (20, 75) to the second computing device, wherein the second wireless communication connection includes a mesh network and uses a different wireless communication protocol than the first wireless communication connection; and sending, by the first computing device, to the second computing device, and via the second wireless communication connection (20, 75), the one or more data packets, wherein the one or more data packets comprise a first set of data packets; automatically establishing, by the first computing device, a second wireless communication connection (20, 75) to the second computing device, wherein the second wireless communication connection includes a mesh network and uses a different wireless communication protocol than the first wireless communication connection; and sending, by the first computing device, to the second computing device, and via the second wireless communication connection (20, 75), the one or more data packets, wherein the one or more data packets comprise a first set of data packets; and, after sending the first set of packets via the second wireless communication connection (20, 75): receiving, by the first computing device, from the second computing device, and via the first wireless communication connection, a second set of data packets; and responsive to receiving the second set of data packets, automatically disconnecting, by the first computing device, from the second wireless communication connection (20, 75). receiving, by the first computing device, from the second computing device, and via the first wireless communication connection, a second set of data packets; and responsive to receiving the second set of data packets, automatically disconnecting, by the first computing device, from the second wireless communication connection (20, 75).