2010-08-01 40 views
43

Bất kỳ tài liệu hay bài viết hay nào về việc chuyển dữ liệu từ thiết bị sang thiết bị?Công nghệ "bump" hoạt động như thế nào?

+5

Khi hai người thực sự thích nhau ... – Oded

+2

"xay" công nghệ là một trong những thực sự quan trọng. – Skilldrick

+16

Rất tiếc, đã được đăng lên ComedianOverflow do tai nạn! – Dave

Trả lời

55

Khá phi kỹ thuật, nhưng their FAQ đưa ra một số thông tin về công nghệ:

Q: Làm thế nào để Bump làm việc?

A: Có hai phần để Bump: ứng dụng chạy trên thiết bị của bạn và thuật toán khớp thông minh chạy trên máy chủ của chúng tôi trong đám mây. Ứng dụng trên điện thoại của bạn sử dụng cảm biến của điện thoại để "cảm nhận" nghĩa đen, và nó sẽ gửi thông tin đó tới đám mây. Các thuật toán phù hợp lắng nghe những va chạm từ điện thoại trên toàn thế giới và cặp lên điện thoại mà cảm thấy cùng một vết sưng. Sau đó, chúng tôi chỉ định tuyến thông tin giữa hai điện thoại trong mỗi cặp.

Q: Không đời nào. Điều gì sẽ xảy ra nếu ai đó va chạm cùng một lúc?

A: Way. Chúng tôi sử dụng các kỹ thuật khác nhau để giới hạn nhóm các trận đấu tiềm năng, bao gồm thông tin vị trí và đặc điểm của sự kiện bump. Nếu bạn đang va chạm trong một khu vực đặc biệt dày đặc (ví dụ, tại một hội nghị), và chúng tôi không thể giải quyết một trận đấu duy nhất sau một cú va chạm duy nhất, chúng tôi sẽ yêu cầu bạn lại va chạm. CTO của chúng tôi có bằng tiến sĩ về Cơ học lượng tử và có thể hiển thị toán học đằng sau điều đó, nhưng chúng tôi khuyên bạn nên tải xuống Bump và tự mình thử!

Q: Tại sao Bump muốn sử dụng vị trí của tôi?

A: Hiện tại, chúng tôi có hàng triệu người dùng trên toàn thế giới. Chúng tôi sử dụng thông tin vị trí là một trong những cách chúng tôi giới hạn số lượng điện thoại khác mà chúng tôi phải kiểm tra để xác định kết quả phù hợp. Về cơ bản, nếu bạn ở Chicago, chúng tôi sử dụng thông tin đó để chúng tôi không phải so sánh với những va chạm từ Nhật Bản, Châu Âu, New York, v.v. Vì lý do này, chúng tôi yêu cầu bật dịch vụ vị trí và người dùng cho phép sử dụng thông tin vị trí của họ. Nếu bạn không cho phép sử dụng thông tin vị trí, Bump sẽ không hoạt động, xin lỗi.

Hỏi: Bump có yêu cầu bật Bluetooth của tôi không?

A: Không! Bump không sử dụng Bluetooth để làm việc ở tất cả; tất cả những gì bạn cần là kết nối Internet thông qua wifi, 3G hoặc Edge.

+0

cảm ơn thông tin! – Dave

+4

Bạn có thể giải thích một số lý do tại sao Bump sử dụng phương pháp dựa trên đám mây qua Bluetooth để bắt đầu chuyển khoản không? –

+2

Nguyên nhân trong khung iphone bluetooth chỉ mở trong các điện thoại bị hỏng do jailbreak. – Robin

9

Bạn có thể khó hiểu cách Bump hoạt động. Sự hiểu biết của tôi là dữ liệu gia tốc và vị trí địa lý được sử dụng để xác định ứng cử viên "va chạm" hoặc cặp thiết bị. Các dữ liệu liên lạc, chính nó, được chuyển qua Internet, không phải cục bộ thông qua Bluetooth hoặc wifi.

+0

cảm ơn thông tin! – Dave

5

Hoàn Ví dụ từ 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

cảm ơn, nó hữu ích! –

Các vấn đề liên quan