1. A method for providing communications between users of mobile devices based on proximities between the users, the method comprising: registering the users on one or more servers; generating a unique identifier for each user, and storing the unique identifier on one or more servers, and providing the unique identifier to respective ones of the mobile devices to be stored on the respective mobile devices; associating a user profile with each unique identifier; causing at least a plurality of the mobile devices to broadcast transmissions with their unique identifiers; causing at least a plurality of the mobile devices to listen for incoming identifiers from other mobile devices; in the case of a first mobile device detecting a second mobile device, receiving from the second mobile device the a unique identifier associated with the second mobile device; using the unique identifiers of the first mobile device and the second mobile device to establish detection, whereby the detection comprises detections made directly between two devices, detection between two devices through an external radio communication device or hotspot, or indirect detection through another mobile device or devices linking the first mobile device and the second mobile device; using the established detection to form a group of two or more mobile devices; transmitting to the first mobile device a list of users or an updated list of users in the group; and in the case of the first mobile device not having profile information regarding users associated with other mobile devices in the group, providing at least a subset of profile information associated with the list of users in the group to the first mobile device.