You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多对等框架下,发送方如何获知接收方的邀请接受/拒绝状态?

关于多对等框架(MultiPeer Framework)邀请状态的问题解答

1. 发送方如何获知接收方对邀请执行的接受(ACCEPT)或拒绝(DECLINE)操作?

在MultiPeer Framework中,发送方要获取接收方的邀请回应,只需要实现MCSessionDelegate协议中的session:didReceiveInvitationResponse:fromPeer:context:方法即可。具体逻辑如下:

  • 当接收方接受邀请时,invitationResponse.invitationAccepted属性会返回YES,后续你还会在session:peer:didChangeState:代理方法中看到该对等方的状态变为MCSessionStateConnected,代表连接已建立。
  • 当接收方拒绝邀请时,invitationResponse.invitationAccepted会返回NO,你可以在这个方法里直接处理拒绝逻辑,比如给发送方弹出提示告知邀请被拒绝。

下面是一段示例代码供参考:

- (void)session:(MCSession *)session didReceiveInvitationResponse:(MCInvitationResponse *)invitationResponse fromPeer:(MCPeerID *)peerID context:(NSData *)context {
    if (invitationResponse.invitationAccepted) {
        NSLog(@"对等方 %@ 接受了邀请!", peerID.displayName);
        // 在这里处理邀请接受后的逻辑
    } else {
        NSLog(@"对等方 %@ 拒绝了邀请。", peerID.displayName);
        // 在这里处理邀请被拒绝后的逻辑
    }
}

2. 在多对等框架中,当发送方调用代码[self.browser invitePeer:peerID toSession:self.session withContext:nil timeout:INVITE_TIMEOUT]向接收方发送邀请后,若接收方拒绝该邀请,发送方是否有办法检测到这一状态?

当然可以!还是通过上面提到的session:didReceiveInvitationResponse:fromPeer:context:代理方法来检测。无论接收方接受还是拒绝邀请,这个方法都会被触发,你只需要通过invitationAccepted这个布尔值来区分两种结果即可。

另外补充一点:如果邀请在INVITE_TIMEOUT超时时间内没有得到接收方的回应,框架不会触发拒绝回调,这时你可以自行通过定时器来跟踪邀请生命周期,处理超时场景。

内容的提问来源于stack exchange,提问作者Rajneesh071

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:25:54