标签: multipeer-connectivity

2
推荐指数
1
解决办法
2281
查看次数

多路连接 - 以编程方式断开对等端

我正在将一个应用程序从GameKit转换为Multipeer Connectivity,似乎找不到允许浏览器设备从会话中断开另一个对等体的方法.使用GKSession,我们可以使用disconnectPeerFromAllPeers:断开单个对等体与会话的连接,但我在MPC中找不到类似的东西.当然,MPC确实有disconnect:方法,但这会使本地对等体退出会话......不是我想要的.

我发现最接近的是:cancelConnectPeer:但这似乎更侧重于取消连接尝试...而不是发布连接.

如果有可能与MPC一起使用,任何人都知道如何做到这一点?

谢谢!

disconnect ios7 multipeer-connectivity

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

iOS 7:通过Wi-Fi或点对点Wi-Fi使用Multipeer Connectivity连接设备

我试图通过iOS 7中的Multipeer连接框架连接2个iOS 7设备.我可以使用蓝牙连接它们.在代码中我没有提到像蓝牙这样的东西.

多重文档

Multipeer Connectivity框架支持使用基础设施Wi-Fi网络,点对点Wi-Fi和蓝牙个人局域网发现附近iOS设备提供的服务,并随后通过发送基于消息的数据,流数据与这些服务进行通信和资源(如文件).

如果,我关闭其中一个设备的蓝牙,它停止工作.

因为,蓝牙范围很慢我需要大面积覆盖.那么,请告诉我如何通过Wi-Fi或点对点Wi-Fi连接两台设备?

代码:.h文件

@interface SessionManager : NSObject <MCSessionDelegate, MCAdvertiserAssistantDelegate, MCBrowserViewControllerDelegate>

// current peer
@property (nonatomic, readonly) MCPeerID *myPeer ;

// current session
@property (nonatomic, readonly) MCSession *session;

// current advertise
@property (nonatomic, readonly) MCAdvertiserAssistant *advertiser ;

// current browser
@property (nonatomic, readonly) MCBrowserViewController *browser ;

//To start advertising current device
- (void)start;

//To stop advertising current device
- (void)stop;

@end
Run Code Online (Sandbox Code Playgroud)

.m文件:

- (id)init
{
    self = [super init];

    if (self)
    {
        _myPeer = [[MCPeerID …
Run Code Online (Sandbox Code Playgroud)

wifi ios ios7 xcode5 multipeer-connectivity

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

当NSStream NSStreamEventHasSpaceAvailable事件被调用?

我真的不明白这个事件.我希望在发送队列(或类似的内部结构)完成发送先前写入的数据包时调用它.

这是正确的假设吗?


我正在通过Multipeer连接处理视频流,我想使用此属性来决定是否应该丢弃相机框架(如果没有NSStreamEventHasSpaceAvailable),或者我可以提交它NSOutputStream.

想象一下BlueTooth连接,我真的需要丢弃很多相机框架,而不是提交每一帧NSStream.

camera nsstream ios avcapturesession multipeer-connectivity

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

我在列表中看不到广告商(多重连接),为什么?

我在列表中看不到广告客户.我在设备和模拟器上运行此代码,你知道为什么吗?

在此输入图像描述

这是添加到主viewcontroller的所有代码.我正在使用nshipser multipeer连接教程:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    static NSString * const XXServiceType = @"xx-service";
    localPeerID = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];

    MCNearbyServiceAdvertiser *advertiser =
    [[MCNearbyServiceAdvertiser alloc] initWithPeer:localPeerID
                                      discoveryInfo:nil
                                        serviceType:XXServiceType];
    advertiser.delegate = self;
    [advertiser startAdvertisingPeer];

    MCSession *session = [[MCSession alloc] initWithPeer:localPeerID
                                        securityIdentity:nil
                                    encryptionPreference:MCEncryptionNone];
    session.delegate = self;

    MCNearbyServiceBrowser *browser = [[MCNearbyServiceBrowser alloc] initWithPeer:localPeerID serviceType:XXServiceType];
    browser.delegate = self;

    MCBrowserViewController *browserViewController =
    [[MCBrowserViewController alloc] initWithBrowser:browser
                                             session:session];
    browserViewController.view.backgroundColor = [UIColor redColor];
    browserViewController.delegate = self;

    self.modalPresentationStyle = UIModalPresentationFullScreen;

    [self presentViewController:browserViewController animated:YES completion:
     ^{ …
Run Code Online (Sandbox Code Playgroud)

multipeer-connectivity

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

多点连接:对等点有时无法连接

我正在开发一款使用 MPC 的游戏。我让它工作了,但我发现连接(尤其是超过 2 个对等点)经常失败。对等方开始连接 (MCSessionState.Connecting),然后就不再连接 (MCSessionState.NotConnected)。其他时候,它就像一个魅力。

这只是框架的问题,还是我可能做错了什么?

我按照这个教程进行了操作。在我的实现中,玩家之一是浏览器,其余的是广告商。我想出的唯一解决方法是在获得 .NotConnected 标志时尝试再次连接,但有时它会尝试重新连接 3 或 4 次才能成功(花费太长时间)。

这是相关代码:

MPCManager(这个类是MCSessionDelegate、MCNearbyServiceBrowserDelegate、MCNearbyServiceAdvertiserDelegate)

func advertiser(advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: NSData?, invitationHandler: (Bool, MCSession) -> Void) {
    self.invitationHandler = invitationHandler

    delegate?.invitationWasReceived(peerID.displayName)
}

// MARK: MCSessionDelegate method implementation


func session(session: MCSession, peer peerID: MCPeerID, didChangeState state: MCSessionState) {
    switch state{
    case MCSessionState.Connected:
        print("Connected to session: \(session)")
        connectedPeers.append(peerID)
        delegate?.connectedWithPeer(peerID)

    case MCSessionState.Connecting:
        print("Connecting to session: \(session)")

    default:
        delegate?.disconnectedFromPeer(peerID)
        print("Did not connect to session: \(session)")
    }
} …
Run Code Online (Sandbox Code Playgroud)

ios multipeer-connectivity

0
推荐指数
1
解决办法
1917
查看次数