Tôi muốn kết nối hai thiết bị bằng GKSession, bắt đầu từ một máy chủ và máy còn lại là máy khách. Sử dụng cấu hình này tôi không thể sử dụng GKPeerPickerController.GameKit: Hướng dẫn sử dụng GKSession
tôi đang gặp vấn đề để kết nối hai thiết bị:
- Chỉ sử dụng bluetooth: không thể
- sử dụng WiFi: ít nhất có một số trao đổi dữ liệu giữa các thiết bị nhưng conection không thành công.
Trong tập tin giao diện Tôi có
GKSessionDelegate
GKSession *session;
Trong việc thực hiện, tôi bắt đầu máy chủ sử dụng mã này:
session = [[GKSession alloc] initWithSessionID:@"iFood" displayName:nil sessionMode:GKSessionModeClient];
session.delegate = self;
session.available = YES;
Các khách hàng bắt đầu sử dụng mã này:
session = [[GKSession alloc] initWithSessionID:@"iFood" displayName:nil sessionMode:GKSessionModeServer];
session.delegate = self;
session.available = YES;
Cách tôi có thể buộc sử dụng Bluetooth thay vì t anh ta có WiFi không?
Ngoài ra tôi đã thực hiện những cuộc gọi:
-(void)session:(GKSession *)session didReceiveConnectionRequestFromPeer:(NSString *)peerID {
NSLog(@"Someone is trying to connect");
}
- (BOOL)acceptConnectionFromPeer:(NSString *)peerID error:(NSError **)error {
NSLog(@"acceptConnectionFromPeer");
}
Khi tôi bắt đầu, tôi có được điều này vào debugger:
Listening on port 50775
2010-02-19 14:55:02.547 iFood[3009:5103] handleEvents started (2)
Và khi thiết bị khác bắt đầu để tìm, tôi có được điều này:
~ DNSServiceBrowse callback: Ref=187f70, Flags=2, IFIndex=2 (name=[en0]), ErrorType=0 name=00eGs1R1A..Only by Audi regtype=_2c3mugr67ej6j7._udp. domain=local.
~ DNSServiceQueryRecord callback: Ref=17bd40, Flags=2, IFIndex=2 (name=[en0]), ErrorType=0 fullname=00eGs1R1A\.\.Only\032by\032Audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=4500
** peer 1527211048: oldbusy=0, newbusy=0
~ DNSServiceBrowse callback: Ref=187f70, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 name=00eGs1R1A..Only by Audi regtype=_2c3mugr67ej6j7._udp. domain=local.
GKPeer[186960] 1527211048 service count old=1 new=2
~ DNSServiceQueryRecord callback: Ref=17bd40, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 fullname=00egs1r1a\.\.only\032by\032audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=7200
** peer 1527211048: oldbusy=0, newbusy=0
~ DNSServiceBrowse callback: Ref=187f70, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 name=00TF5kc1A..Only by Audi regtype=_2c3mugr67ej6j7._udp. domain=local.
~ DNSServiceQueryRecord callback: Ref=188320, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 fullname=00tf5kc1a\.\.only\032by\032audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=7200
** peer 1723356125: oldbusy=0, newbusy=0
~ DNSServiceQueryRecord callback: Ref=188320, Flags=2, IFIndex=2 (name=[en0]), ErrorType=0 fullname=00TF5kc1A\.\.Only\032by\032Audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=4500
** peer 1723356125: oldbusy=0, newbusy=0
Tôi đang thiếu gì ở đây?
Tôi chắc chắn rằng cả hai thiết bị đều đã bật Bluetooth và được kết nối vào cùng một mạng WiFi.
cảm ơn,
r.
FYI, GKSessionModeClient và GKSessionModeServer của bạn được hoán đổi. – Jeff