1
如果我有1个服务器和几个客户端(所有的同行都知道会话名称) - 这是没有问题的。 但2服务器我有问题。 客户端如何知道会话ID,连接到服务器的会话创建是什么,他们如何选择服务器?我不想使用同伴选取器。 Ty为任何答案。游戏工具包几个服务器和几个客户端
如果我有1个服务器和几个客户端(所有的同行都知道会话名称) - 这是没有问题的。 但2服务器我有问题。 客户端如何知道会话ID,连接到服务器的会话创建是什么,他们如何选择服务器?我不想使用同伴选取器。 Ty为任何答案。游戏工具包几个服务器和几个客户端
- (void)viewDidLoad {
[super viewDidLoad];
self.serverArray = [NSMutableArray array];
self.session = [[GKSession alloc] initWithSessionID:nil displayName:nil sessionMode:GKSessionModeClient];
self.session.delegate = self;
[self.session setDataReceiveHandler:self withContext:NULL];
self.session.available = YES;
}
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state {
NSString *serverName = [session displayNameForPeer:peerID];
[self.serverArray addObject:serverName];
[self.availableServers reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [self.serverArray objectAtIndex:indexPath.row];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ClientGameViewController *clientGameViewController = [[ClientGameViewController alloc] init];
clientGameViewController.serverName = [self.serverArray objectAtIndex:indexPath.row];
clientGameViewController.serverSessionName = [self.serverArray objectAtIndex:indexPath.row];
[self.view addSubview:clientGameViewController.view];
}
self.session = [[GKSession的alloc] initWithSessionID:SESSION_ID(如何知道)显示名:无sessionMode:GKSessionModeClient]; –
如果我有2个不同的服务器和1个sessionID。发生什么事? –