2010-08-01 1 views
43

Gibt es eine gute Dokumentation oder Artikel über die Datenübertragung von Gerät zu Gerät?Wie funktioniert die "Bump" -Technologie?

+5

Wenn zwei Menschen wirklich wie jeder andere ... – Oded

+2

"grind" Technologie die wirklich wichtig ist. – Skilldrick

+16

Ups, muss auf ComedianOverflow auf Unfall gepostet haben! – Dave

Antwort

55

Recht nicht-technische, aber their FAQ gibt einige Informationen über die Technologie:

F: Wie funktioniert Bump arbeiten?

A: Bump besteht aus zwei Teilen: Die App läuft auf Ihrem Gerät und ein intelligenter Matching-Algorithmus läuft auf unseren Servern in der Cloud. Die App auf Ihrem Telefon verwendet die Sensoren des Telefons, um die Beule buchstäblich "zu fühlen" und sendet diese Informationen in die Cloud. Der passende Algorithmus hört auf die Unebenheiten von Telefonen auf der ganzen Welt und paart Telefone, die den gleichen Stoß fühlen. Dann leiten wir einfach Informationen zwischen den beiden Telefonen in jedem Paar weiter.

Q: Auf keinen Fall. Was, wenn jemand anderes zur selben Zeit stößt?

A: Weg. Wir verwenden verschiedene Techniken, um den Pool potenzieller Übereinstimmungen zu begrenzen, einschließlich der Standortinformationen und Merkmale des Bump-Ereignisses. Wenn Sie in einem besonders dichten Bereich (z. B. bei einer Konferenz) stoßen und wir nach einem einzigen Unwetter kein eindeutiges Spiel auflösen können, bitten wir Sie, erneut zu stoßen. Unser CTO hat einen Doktor in Quantenmechanik und kann die Mathematik dahinter zeigen, aber wir schlagen vor, Bump herunterzuladen und es selbst auszuprobieren!

F: Warum möchte Bump meinen Standort verwenden?

A: Wir haben jetzt Millionen von Benutzern weltweit. Wir verwenden Standortinformationen als eine der Möglichkeiten, wie wir die Anzahl anderer Telefone, die wir überprüfen müssen, begrenzen, um die richtige Übereinstimmung zu bestimmen. Grundsätzlich, wenn Sie in Chicago sind, verwenden wir diese Informationen, so dass wir Ihre Beule nicht mit Beulen vergleichen müssen, die aus Japan, Europa, New York usw. kommen. Aus diesem Grund benötigen wir, dass die Ortungsdienste aktiviert werden Benutzer autorisieren die Verwendung ihrer Standortinformationen. Wenn Sie die Verwendung von Standortinformationen nicht autorisieren, wird Bump nicht funktionieren, tut mir leid.

F: Muss Bump auch meine Bluetooth aktiviert haben?

A: Nein! Bump verwendet Bluetooth nicht, um überhaupt zu arbeiten; Alles, was Sie brauchen, ist eine Internetverbindung über WLAN, 3G oder Edge.

+0

danke für die Info! – Dave

+4

Können Sie etwas Licht in die Frage bringen, warum Bump einen Cloud-basierten Ansatz über Bluetooth verwendet, um eine Übertragung einzuleiten? –

+2

Ursache in iphone Bluetooth-Framework ist nur im Gefängnis gebrochen iPhones geöffnet. – Robin

9

Sie können verwirren, wie Bump funktioniert. Nach meinem Verständnis werden Beschleunigungsmesser- und Geolokationsdaten verwendet, um Kandidaten- "Höcker" oder Gerätepaare zu identifizieren. Die Kontaktdaten werden selbst über das Internet übertragen, nicht lokal über Bluetooth oder WLAN.

+0

danke für die Info! – Dave

5

vollständiges Beispiel von https://github.com/bumptech/bump-api-ios

- (void) configureBump { 
// userID is a string that you could use as the user's name, or an ID that is semantic within your environment 
[BumpClient configureWithAPIKey:@"your_api_key" andUserID:[[UIDevice currentDevice] name]]; 

[[BumpClient sharedClient] setMatchBlock:^(BumpChannelID channel) { 
    NSLog(@"Matched with user: %@", [[BumpClient sharedClient] userIDForChannel:channel]); 
    [[BumpClient sharedClient] confirmMatch:YES onChannel:channel]; 
}]; 

[[BumpClient sharedClient] setChannelConfirmedBlock:^(BumpChannelID channel) { 
    NSLog(@"Channel with %@ confirmed.", [[BumpClient sharedClient] userIDForChannel:channel]); 
    [[BumpClient sharedClient] sendData:[[NSString stringWithFormat:@"Hello, world!"] dataUsingEncoding:NSUTF8StringEncoding] 
           toChannel:channel]; 
}]; 

[[BumpClient sharedClient] setDataReceivedBlock:^(BumpChannelID channel, NSData *data) { 
    NSLog(@"Data received from %@: %@", 
    [[BumpClient sharedClient] userIDForChannel:channel], 
    [NSString stringWithCString:[data bytes] encoding:NSUTF8StringEncoding]); 
}]; 


// optional callback 
[[BumpClient sharedClient] setConnectionStateChangedBlock:^(BOOL connected) { 
    if (connected) { 
     NSLog(@"Bump connected..."); 
    } else { 
     NSLog(@"Bump disconnected..."); 
    } 
}]; 

// optional callback 
[[BumpClient sharedClient] setBumpEventBlock:^(bump_event event) { 
    switch(event) { 
     case BUMP_EVENT_BUMP: 
      NSLog(@"Bump detected."); 
      break; 
     case BUMP_EVENT_NO_MATCH: 
      NSLog(@"No match."); 
      break; 
    } 
}]; 

}

+0

danke, es ist nützlich! –