小编Low*_*wip的帖子

在线多人游戏基础知识

我目前正在进行ac#在线多人游戏的实时制作.目的是使用UDP协议进行基于客户端/服务器的连接.到目前为止,我已经将UDP用于玩家的动作和TCP用于事件(玩家射击,玩家失去生命),因为我需要确保这些数据将到达连接到服务器的所有玩家.我知道UDP被称为"不可靠",一些数据包可能会丢失.但我已经到处读到永远不会混用TCP和UDP,因为它会影响连接.

主要问题是我应该如何组织我的网络?

UDP是无连接的,我该如何保存谁是谁?我应该在列表中保存客户端的IP地址吗?

我应该使用TCP进行重要事件还是使用UDP?如果我需要使用UDP,我如何确保数据不会丢失?

通过使用TCP和UDP,我需要为每个播放器保存其列表中的IP(对于UDP)和在另一个列表中连接的TcpClient(对于UDP).我怎么能改变它更有效?

c# networking real-time

8
推荐指数
1
解决办法
2739
查看次数

requestNewPublishPermissions后未更新权限

我想让我的应用程序像Facebook页面.为此,我请求publish_actions权限调用:

[[FBSession activeSession] requestNewPublishPermissions:@[@"publish_actions"]
                                          defaultAudience:FBSessionDefaultAudienceFriends
                                        completionHandler:nil];
Run Code Online (Sandbox Code Playgroud)

然后为了喜欢我打电话的页面:

[FBRequestConnection startWithGraphPath:@"PAGE_ID/likes"
                           parameters:@{@"access_token" : [FBSession activeSession].accessTokenData.accessToken}
                           HTTPMethod:@"POST"
                    completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                      NSLog(@"%@", error);
                    }];
Run Code Online (Sandbox Code Playgroud)

问题是,当我看到时[FBSession activeSession].permissions,它只包含@"email我之前要求的内容.

通过类似调用打印的错误是:

permissions:(
email
)>, com.facebook.sdk:ParsedJSONResponseKey=<CFBasicHash 0x944ee10 [0x214eb48]>{type = mutable dict, count = 2,
entries =>
1 : <CFString 0x27c2cc [0x214eb48]>{contents = "code"} = <CFNumber 0x9446260 [0x214eb48]>{value = +400, type = kCFNumberSInt32Type}
2 : <CFString 0x273e1c [0x214eb48]>{contents = "body"} = <CFBasicHash 0x944e650 [0x214eb48]>{type = mutable dict, count = 1, …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-graph-api ios facebook-ios-sdk

5
推荐指数
0
解决办法
1214
查看次数