示例#1
0
        public void initializeMCServices()
        {
            myPeerId = new MCPeerID(UIDevice.CurrentDevice.Name);

            MyAdvertiserDelegate myAdvertiserDelegate = new MyAdvertiserDelegate(this);
            MyBrowserDelegate    myBrowserDelegate    = new MyBrowserDelegate(this);
            MySessionDelegate    mySessionDelegate    = new MySessionDelegate(this);

            var emptyDict = new NSDictionary();
            MCNearbyServiceAdvertiser serviceAdvertiser = new MCNearbyServiceAdvertiser(myPeerId, emptyDict, serviceTypeString);

            serviceAdvertiser.Delegate = myAdvertiserDelegate;
            serviceAdvertiser.StartAdvertisingPeer();

            MCNearbyServiceBrowser serviceBrowser = new MCNearbyServiceBrowser(myPeerId, serviceTypeString);

            serviceBrowser.Delegate = myBrowserDelegate;
            serviceBrowser.StartBrowsingForPeers();

            session          = new MCSession(myPeerId);
            session.Delegate = mySessionDelegate;


            sendPeerToPeerData(myPeerId.DisplayName);
        }
示例#2
0
        public override void DidReceiveInvitationFromPeer(MCNearbyServiceAdvertiser advertiser, MCPeerID peerID, NSData context, MCNearbyServiceAdvertiserInvitationHandler invitationHandler)
        {
            System.Diagnostics.Debug.WriteLine("Advertiser [" + session.MyPeerID.GetNativeHash() + "] will accept invite from " + peerID.DisplayName + " [" + peerID.GetNativeHash() + "]");

            MyPhoneStatus.LastInvitation = DateTime.UtcNow;

            MyPhoneStatus.ConnectedPeers.Clear();
            MyPhoneStatus.ConnectedPeers.AddRange(session.ConnectedPeers);

            invitationHandler(true, session);
        }
        public MultipeerSession(Action <NSData, MCPeerID> receivedDataHandler) : base()
        {
            this.receivedDataHandler = receivedDataHandler;

            this.session          = new MCSession(this.myPeerID, null, MCEncryptionPreference.Required);
            this.session.Delegate = this;

            this.serviceAdvertiser          = new MCNearbyServiceAdvertiser(this.myPeerID, null, ServiceType);
            this.serviceAdvertiser.Delegate = this;
            this.serviceAdvertiser.StartAdvertisingPeer();

            this.serviceBrowser          = new MCNearbyServiceBrowser(this.myPeerID, ServiceType);
            this.serviceBrowser.Delegate = this;
            this.serviceBrowser.StartBrowsingForPeers();
        }
示例#4
0
        /// <summary>
        /// For use when acting as game server
        /// </summary>
        public void StartAdvertising()
        {
            if (this.serviceAdvertiser == null)
            {
                var discoveryInfo = NSDictionary.FromObjectAndKey(new NSString(appIdentifier), new NSString(XamarinShotGameAttribute.AppIdentifier));
                if (this.location != null)
                {
                    discoveryInfo[LocationKey] = new NSString(this.location.Identifier.ToString());
                }

                var advertiser = new MCNearbyServiceAdvertiser(this.myself.PeerId, discoveryInfo, XamarinShotGameService.PlayerService);
                advertiser.Delegate = this;
                advertiser.StartAdvertisingPeer();
                this.serviceAdvertiser = advertiser;
            }
        }
 public void DidReceiveInvitationFromPeer(MCNearbyServiceAdvertiser advertiser, MCPeerID peerID, NSData context, MCNearbyServiceAdvertiserInvitationHandler invitationHandler)
 {
     // Call handler to accept invitation and join the session.
     invitationHandler(true, this.session);
 }
示例#6
0
 public override void DidReceiveInvitationFromPeer(MCNearbyServiceAdvertiser advertiser, MCPeerID peerID, NSData context, MCNearbyServiceAdvertiserInvitationHandler invitationHandler)
 {
     Console.WriteLine("Did Received Invitation From Peer {0)", peerID);
     invitationHandler(true, DataTransferServices.session);
 }
示例#7
0
 public void StopAdvertising()
 {
     // stop advertising
     this.serviceAdvertiser?.StopAdvertisingPeer();
     this.serviceAdvertiser = null;
 }
示例#8
0
 public void DidReceiveInvitationFromPeer(MCNearbyServiceAdvertiser advertiser, MCPeerID peerID, NSData context, MCNearbyServiceAdvertiserInvitationHandler invitationHandler)
 {
     invitationHandler(true, Session);
 }