Example #1
0
        public static void ProcessCommand(MCSession session, Foundation.NSData data, MCPeerID peerID)
        {
            Console.WriteLine("Received command to process " + data.ToString());

            // disconnect session if needed.
            // forward to internet if available
        }
Example #2
0
        public override void DidReceiveStream(MCSession session, Foundation.NSInputStream stream, string streamName, MCPeerID peerID)
        {
            AppDelegate.PeerHistoryMonitor[peerID.DisplayName].LastReceiveStream = DateTime.UtcNow;

            System.Diagnostics.Debug.WriteLine("MCSessionDelegate ** DidReceiveStream");
            InvokeOnMainThread(() => new UIAlertView("Msg", "DidReceiveStream()", null, "OK", null).Show());
        }
Example #3
0
        public void Ctor_Identity_Certificates()
        {
            TestRuntime.AssertSystemVersion(ApplePlatform.iOS, 7, 0, throwIfOtherPlatform: false);
            TestRuntime.AssertSystemVersion(ApplePlatform.MacOSX, 10, 10, throwIfOtherPlatform: false);

            using (var id = IdentityTest.GetIdentity())
                using (var trust = new SecTrust(id.Certificate, SecPolicy.CreateBasicX509Policy()))
                    using (var peer = new MCPeerID("me")) {
                        SecCertificate [] certs = new SecCertificate [trust.Count];
                        for (int i = 0; i < trust.Count; i++)
                        {
                            certs [i] = trust [i];
                        }

                        using (var s = new MCSession(peer, id, certs, MCEncryptionPreference.Required)) {
                            Assert.AreSame(s.MyPeerID, peer, "MyPeerID");
                            // it's a self-signed certificate that's used for the identity
                            // so it's not added twice to the collection being returned
                            Assert.That(s.SecurityIdentity.Count, Is.EqualTo((nuint)1), "SecurityIdentity");
                            Assert.That(s.SecurityIdentity.GetItem <SecIdentity> (0).Handle, Is.EqualTo(certs [0].Handle), "SecurityIdentity");
                            Assert.That(s.EncryptionPreference, Is.EqualTo(MCEncryptionPreference.Required), "EncryptionPreference");
                            Assert.That(s.ConnectedPeers, Is.Empty, "ConnectedPeers");
                        }
                    }
        }
Example #4
0
        public void Ctor_Identity_Certificates()
        {
            if (!TestRuntime.CheckSystemAndSDKVersion(7, 0))
            {
                Assert.Ignore("requires iOS7+");
            }

            using (var id = IdentityTest.GetIdentity())
                using (var trust = new SecTrust(id.Certificate, SecPolicy.CreateBasicX509Policy()))
                    using (var peer = new MCPeerID("me")) {
                        SecCertificate [] certs = new SecCertificate [trust.Count];
                        for (int i = 0; i < trust.Count; i++)
                        {
                            certs [i] = trust [i];
                        }

                        using (var s = new MCSession(peer, id, certs, MCEncryptionPreference.Required)) {
                            Assert.AreSame(s.MyPeerID, peer, "MyPeerID");
                            // it's a self-signed certificate that's used for the identity
                            // so it's not added twice to the collection being returned
                            Assert.That(s.SecurityIdentity.Count, Is.EqualTo(1), "SecurityIdentity");
                            Assert.That(s.SecurityIdentity.GetItem <SecIdentity> (0).Handle, Is.EqualTo(certs [0].Handle), "SecurityIdentity");
                            Assert.That(s.EncryptionPreference, Is.EqualTo(MCEncryptionPreference.Required), "EncryptionPreference");
                            Assert.That(s.ConnectedPeers, Is.Empty, "ConnectedPeers");
                        }
                    }
        }
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="U3DXT.iOS.Multipeer.SessionStartedReceivingResourceWithNameEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_resourceName">_resource name.</param>
 /// <param name="_peerID">_peer I.</param>
 /// <param name="_progress">_progress.</param>
 public SessionStartedReceivingResourceWithNameEventArgs(MCSession _session, string _resourceName, MCPeerID _peerID, U3DXT.iOS.Native.Foundation.NSProgress _progress)
 {
     session = _session;
     resourceName = _resourceName;
     peerID = _peerID;
     progress = _progress;
 }
Example #6
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);
        }
Example #7
0
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="U3DXT.iOS.Multipeer.SessionStartedReceivingResourceWithNameEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_resourceName">_resource name.</param>
 /// <param name="_peerID">_peer I.</param>
 /// <param name="_progress">_progress.</param>
 public SessionDidReceiveCertificateEventArgs(MCSession _session, object[] _certificate, MCPeerID _peerID, bool _acceptCertificate = true)
 {
     acceptCertificate = _acceptCertificate;
     session           = _session;
     certificate       = _certificate;
     peerID            = _peerID;
 }
Example #8
0
        public NearbyDevicesViewController(IntPtr handle) : base(handle)
        {
            myPhoneName            = "A" + UIKit.UIDevice.CurrentDevice.Name;
            MyPhoneStatus.MyPeerID = myPhoneName;
            myPeerID = new MCPeerID(myPhoneName);

            Session          = new MCSession(myPeerID);
            Session.Delegate = new ChatSessionDelegate(Session);
            //--------------------------------Advertiser----------------------------------------------------
            var emptyDict = new NSDictionary();

            AppDelegate.advertiser          = new MCNearbyServiceAdvertiser(myPeerID, emptyDict, SERVICE_STRING);
            AppDelegate.advertiser.Delegate = new MyNearbyAdvertiserDelegate(this);

            System.Diagnostics.Debug.WriteLine("Starting advertising...");
            AppDelegate.advertiser.StartAdvertisingPeer();
            MyPhoneStatus.IsAdvertising = true;

            ////--------------------------------Browser------------------------------------------------------
            //AppDelegate.browser = new MCNearbyServiceBrowser(myPeerID, SERVICE_STRING);
            //AppDelegate.browser.Delegate = new MyBrowserDelegate(myPeerID, Session);

            //System.Diagnostics.Debug.WriteLine("Starting browsing...");
            //AppDelegate.browser.StartBrowsingForPeers();
            //MyPhoneStatus.IsBrowsing = true;

            CachedPeerStatus.AddRange(AppDelegate.PeerHistoryMonitor.Values);
        }
 public override void DidReceiveData(MCSession session, NSData data, MCPeerID peerID)
 {
     InvokeOnMainThread(() => {
         var alert = new UIAlertView("", data.ToString(), null, "OK");
         alert.Show();
     });
 }
Example #10
0
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="U3DXT.iOS.Multipeer.SessionStartedReceivingResourceWithNameEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_resourceName">_resource name.</param>
 /// <param name="_peerID">_peer I.</param>
 /// <param name="_progress">_progress.</param>
 public SessionStartedReceivingResourceWithNameEventArgs(MCSession _session, string _resourceName, MCPeerID _peerID, U3DXT.iOS.Native.Foundation.NSProgress _progress)
 {
     session      = _session;
     resourceName = _resourceName;
     peerID       = _peerID;
     progress     = _progress;
 }
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="U3DXT.iOS.Multipeer.SessionStartedReceivingResourceWithNameEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_resourceName">_resource name.</param>
 /// <param name="_peerID">_peer I.</param>
 /// <param name="_progress">_progress.</param>
 public SessionDidReceiveCertificateEventArgs(MCSession _session, object[] _certificate, MCPeerID _peerID, bool _acceptCertificate=true)
 {
     acceptCertificate = _acceptCertificate;
     session = _session;
     certificate = _certificate;
     peerID = _peerID;
 }
Example #12
0
        public Task StartScanning()
        {
            var isWifiEnabled = NetworkInterfaces.IsWifiEnabled();

            if (!isWifiEnabled)
            {
                throw new WiFiTurnedOffException();
            }

            var myPeerId = new MCPeerID(UIDevice.CurrentDevice.Name);

            _session = new MCSession(myPeerId)
            {
                Delegate = new SessionDelegate(this)
            };
            MainThread.BeginInvokeOnMainThread(() =>
            {
                var browser = new MCNearbyServiceBrowser(myPeerId, BluetoothOperator.CROSSCAM_SERVICE)
                {
                    Delegate = new NewBrowserDelegate(this)
                };
                browser.StartBrowsingForPeers();
            });
            Debug.WriteLine("### SCANNING START");
            return(Task.FromResult(true));
        }
Example #13
0
        public override void DidReceiveData(MCSession session, Foundation.NSData data, MCPeerID peerID)
        {
            System.Diagnostics.Debug.WriteLine("MCSessionDelegate ** DidReceiveData");
            AppDelegate.PeerHistoryMonitor[peerID.DisplayName].LastReceiveData = DateTime.UtcNow;

            DataProcessor.ProcessCommand(session, data, peerID);
        }
Example #14
0
 internal static void OnSessionDidRecieve(MCSession session, U3DXT.iOS.Native.Foundation.NSData data, MCPeerID peerID)
 {
     if (_sessionReceivedHandlers != null)
     {
         _sessionReceivedHandlers(null, new SessionReceivedEventArgs(session, data, peerID));
     }
 }
Example #15
0
        public override void DidStartReceivingResource(MCSession session, string resourceName, MCPeerID peerID, Foundation.NSProgress progress)
        {
            AppDelegate.PeerHistoryMonitor[peerID.DisplayName].LastReceiveResource = DateTime.UtcNow;

            System.Diagnostics.Debug.WriteLine("MCSessionDelegate ** DidStartReceivingResource");
            InvokeOnMainThread(() => new UIAlertView("Msg", "DidStartReceivingResource()", null, "OK", null).Show());
        }
Example #16
0
 internal static void OnSessionDidChange(MCSession session, MCPeerID peerID, MCSessionState state)
 {
     if (_sessionChangedHandlers != null)
     {
         _sessionChangedHandlers(null, new SessionChangedEventArgs(session, peerID, state));
     }
 }
    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 140, 80), "Connect"))
        {
            MCSession.U3D_InitWith(SystemInfo.deviceName, "HUAILIANG", OnPeerJoin, OnRecvMessage, OnPeerQuit);
        }

        if (GUI.Button(new Rect(210, 10, 140, 80), "Quit"))
        {
            MCSession.U3D_Quit();
        }
#if UNITY_ANDROID
        if (GUI.Button(new Rect(410, 10, 140, 80), "Discover"))
        {
            WifiDirect.Discover();
        }

        if (GUI.Button(new Rect(610, 10, 140, 80), "Setting"))
        {
            WifiDirect.OpenSetting();
        }
#endif

        input = GUI.TextField(new Rect(10, 140, 260, 80), input);
        if (GUI.Button(new Rect(280, 140, 150, 80), "Send"))
        {
            Debug.Log("send msg: " + input);
            MCSession.U3D_Broadcast(input);
            input = string.Empty;
        }

        GUI.Label(new Rect(10, 240, 500, 300), content);
    }
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="U3DXT.iOS.Multipeer.SessionFinishedReceivingResourceWithNameEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_resourceName">_resource name.</param>
 /// <param name="_peerID">_peer I.</param>
 /// <param name="_localURL">_local UR.</param>
 /// <param name="_error">_error.</param>
 public SessionFinishedReceivingResourceWithNameEventArgs(MCSession _session, string _resourceName, MCPeerID _peerID, U3DXT.iOS.Native.Foundation.NSURL _localURL, U3DXT.iOS.Native.Foundation.NSError _error)
 {
     session = _session;
     resourceName = _resourceName;
     peerID = _peerID;
     localURL = _localURL;
     error = _error;
 }
Example #19
0
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="U3DXT.iOS.Multipeer.SessionFinishedReceivingResourceWithNameEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_resourceName">_resource name.</param>
 /// <param name="_peerID">_peer I.</param>
 /// <param name="_localURL">_local UR.</param>
 /// <param name="_error">_error.</param>
 public SessionFinishedReceivingResourceWithNameEventArgs(MCSession _session, string _resourceName, MCPeerID _peerID, U3DXT.iOS.Native.Foundation.NSURL _localURL, U3DXT.iOS.Native.Foundation.NSError _error)
 {
     session      = _session;
     resourceName = _resourceName;
     peerID       = _peerID;
     localURL     = _localURL;
     error        = _error;
 }
Example #20
0
 internal static void OnSessionDidStartReceivingResourceWithName(MCSession session, string resourceName, MCPeerID peerID, U3DXT.iOS.Native.Foundation.NSProgress progress)
 {
     if (_sessionStartedReceivingResourceWithNameHandlers != null)
     {
         _sessionStartedReceivingResourceWithNameHandlers(null,
                                                          new SessionStartedReceivingResourceWithNameEventArgs(session, resourceName, peerID, progress));
     }
 }
Example #21
0
 internal static void OnSessionDidFinishReceivingResourceWithName(MCSession session, string resourceName, MCPeerID peerID, U3DXT.iOS.Native.Foundation.NSURL localURL, U3DXT.iOS.Native.Foundation.NSError error)
 {
     if (_sessionFinishedReceivingResourceWithNameHandlers != null)
     {
         _sessionFinishedReceivingResourceWithNameHandlers(null,
                                                           new SessionFinishedReceivingResourceWithNameEventArgs(session, resourceName, peerID, localURL, error));
     }
 }
 void StartMultipeerAdvertiser()
 {
     peer             = new MCPeerID("Player1");
     session          = new MCSession(peer);
     session.Delegate = sessionDelegate;
     assistant        = new MCAdvertiserAssistant(serviceType, dict, session);
     assistant.Start();
 }
Example #23
0
        public override void DidFinishReceivingResource(MCSession session, string resourceName, MCPeerID peerID, NSUrl localUrl, NSError error)
        {
            AppDelegate.PeerHistoryMonitor[peerID.DisplayName].LastReceiveResource = DateTime.UtcNow;

            System.Diagnostics.Debug.WriteLine("MCSessionDelegate ** DidFinishReceivingResource");

            InvokeOnMainThread(() => new UIAlertView("Msg", "DidFinishReceivingResource()", null, "OK", null).Show());
            error = null;
        }
Example #24
0
        /// <summary>
        /// Starts the advertiser assistant.
        /// </summary>
        /// <param name='displayName'>
        /// The display name for the local peer
        /// </param>
        /// <param name='serviceType'>
        /// The type of service to advertise. Must be 1-15 characters long, only ASCII lower case characters.
        /// </param>
        public static void StartAdvertiserAssistant(string displayName, string serviceType)
        {
            _peerId              = new MCPeerID(displayName);
            _session             = new MCSession(_peerId);
            _advertiserAssistant = new MCAdvertiserAssistant(serviceType, null, _session);
            _advertiserAssistant.Start();

            _session.Delegate             = SessionDelegate.instance;
            _advertiserAssistant.Delegate = AdvertiserAssistantDelegate.instance;
        }
 void StartMultipeerBrowser()
 {
     peer             = new MCPeerID("Monkey");
     session          = new MCSession(peer);
     session.Delegate = sessionDelegate;
     browser          = new MCBrowserViewController(serviceType, session);
     browser.Delegate = browserDelegate;
     browser.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
     this.PresentViewController(browser, true, null);
 }
Example #26
0
        /// <summary>
        /// Shows the default iOS7.0 Browser view that enables users to invite nearby devices to a session.
        /// </summary>
        /// <param name='displayName'>
        /// The display name for the local peer
        /// </param>
        /// <param name='serviceType'>
        /// The type of service to browse for. Must be 1-15 characters long, only ASCII lower case characters.
        /// </param>
        public static void ShowBrowser(string displayName, string serviceType)
        {
            _peerId             = new MCPeerID(displayName);
            _session            = new MCSession(_peerId);
            _browserVC          = new MCBrowserViewController(serviceType, _session);
            _browserVC.Delegate = BrowserViewControllerDelegate.instance;
            _session.Delegate   = SessionDelegate.instance;


            UIApplication.deviceRootViewController.PresentViewController(_browserVC, false, null);
        }
Example #27
0
        internal static bool OnSessionDidReceiveCertificate(MCSession session, object[] certificate, MCPeerID peerID)
        {
            SessionDidReceiveCertificateEventArgs certArgs = new SessionDidReceiveCertificateEventArgs(session, certificate, peerID);

            if (_sessionDidReceiveCertificateHandlers != null)
            {
                _sessionDidReceiveCertificateHandlers(null, certArgs);
            }

            return(certArgs.acceptCertificate);
        }
Example #28
0
        public void Ctor_OptionalIdentity()
        {
            TestRuntime.AssertSystemVersion(PlatformName.iOS, 7, 0, throwIfOtherPlatform: false);
            TestRuntime.AssertSystemVersion(PlatformName.MacOSX, 10, 10, throwIfOtherPlatform: false);

            using (var peer = new MCPeerID("me"))
                using (var s = new MCSession(peer, null, MCEncryptionPreference.None)) {
                    Assert.AreSame(s.MyPeerID, peer, "MyPeerID");
                    Assert.Null(s.SecurityIdentity, "SecurityIdentity");
                    Assert.That(s.EncryptionPreference, Is.EqualTo(MCEncryptionPreference.None), "EncryptionPreference");
                    Assert.That(s.ConnectedPeers, Is.Empty, "ConnectedPeers");
                }
        }
Example #29
0
        internal static void StartConversation(MCSession session, MCPeerID peerID, MCSessionState state)
        {
            // do you have data to send?
            // Do I have data to send to you?
            // IF no to both, let's check back in within X minutes.

            NSError error = null;

            session.SendData(NSData.FromString("hi"), session.ConnectedPeers, MCSessionSendDataMode.Reliable, out error);
            if (error != null)
            {
                AppDelegate.PeerHistoryMonitor[peerID.DisplayName].LastSendDataError = error;
            }
        }
Example #30
0
        public void Ctor_Identity()
        {
            TestRuntime.AssertSystemVersion(PlatformName.iOS, 7, 0, throwIfOtherPlatform: false);
            TestRuntime.AssertSystemVersion(PlatformName.MacOSX, 10, 10, throwIfOtherPlatform: false);

            using (var id = IdentityTest.GetIdentity())
                using (var peer = new MCPeerID("me"))
                    using (var s = new MCSession(peer, id, MCEncryptionPreference.Required)) {
                        Assert.AreSame(s.MyPeerID, peer, "MyPeerID");
                        Assert.That(s.SecurityIdentity.Count, Is.EqualTo((nuint)1), "SecurityIdentity");
                        Assert.That(s.SecurityIdentity.GetItem <SecIdentity> (0).Handle, Is.EqualTo(id.Handle), "SecurityIdentity");
                        Assert.That(s.EncryptionPreference, Is.EqualTo(MCEncryptionPreference.Required), "EncryptionPreference");
                        Assert.That(s.ConnectedPeers, Is.Empty, "ConnectedPeers");
                    }
        }
Example #31
0
        public void Ctor_OptionalIdentity()
        {
            if (!TestRuntime.CheckSystemAndSDKVersion(7, 0))
            {
                Assert.Ignore("requires iOS7+");
            }

            using (var peer = new MCPeerID("me"))
                using (var s = new MCSession(peer, null, MCEncryptionPreference.None)) {
                    Assert.AreSame(s.MyPeerID, peer, "MyPeerID");
                    Assert.Null(s.SecurityIdentity, "SecurityIdentity");
                    Assert.That(s.EncryptionPreference, Is.EqualTo(MCEncryptionPreference.None), "EncryptionPreference");
                    Assert.That(s.ConnectedPeers, Is.Empty, "ConnectedPeers");
                }
        }
        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();
        }
Example #33
0
        public void CtorPeer()
        {
            if (!TestRuntime.CheckSystemAndSDKVersion(7, 0))
            {
                Assert.Ignore("requires iOS7+");
            }

            using (var peer = new MCPeerID("me"))
                using (var s = new MCSession(peer)) {
                    Assert.AreSame(s.MyPeerID, peer, "MyPeerID");
                    Assert.Null(s.SecurityIdentity, "SecurityIdentity");
                    var pref = UIDevice.CurrentDevice.CheckSystemVersion(9, 0) ? MCEncryptionPreference.Required : MCEncryptionPreference.Optional;
                    Assert.That(s.EncryptionPreference, Is.EqualTo(pref), "EncryptionPreference");
                    Assert.That(s.ConnectedPeers, Is.Empty, "ConnectedPeers");
                }
        }
Example #34
0
    private void SessionChanged(object sender, SessionChangedEventArgs e)
    {
        Debug.Log ("Session Changed " + e.state);

        if (e.state == U3DXT.iOS.Native.MultipeerConnectivity.MCSessionState.Connected )
        {
            Debug.Log("CONNECTED");

            string path = Application.temporaryCachePath+"/someFile.bin";
            // create some arbitary binary data. or load from existing location
            FileStream someFile = new FileStream(path, FileMode.Create);
            someFile.WriteByte(0x42);
            someFile.Close();

        path = "https://www.google.com/images/srpr/logo4w.png";
            _session = e.session;
            _session.SendResourceAtURL(new U3DXT.iOS.Native.Foundation.NSURL(path), "someFile.bin", e.peerID,  sendResourceCompleted);
        }
    }
Example #35
0
        /// <summary>
        /// Shows the default iOS7.0 Browser view that enables users to invite nearby devices to a session.
        /// </summary>
        /// <param name='displayName'>
        /// The display name for the local peer
        /// </param>
        /// <param name='serviceType'>
        /// The type of service to browse for. Must be 1-15 characters long, only ASCII lower case characters.
        /// </param>
        public static void ShowBrowser(string displayName, string serviceType)
        {
            _peerId = new MCPeerID(displayName);
            _session = new MCSession(_peerId);
            _browserVC = new MCBrowserViewController(serviceType, _session);
            _browserVC.Delegate = BrowserViewControllerDelegate.instance;
            _session.Delegate = SessionDelegate.instance;

            UIApplication.deviceRootViewController.PresentViewController(_browserVC, false, null);
        }
Example #36
0
 public override void DidReceive(MCSession session, U3DXT.iOS.Native.Foundation.NSData data, MCPeerID peerID)
 {
     MultipeerXT.OnSessionDidRecieve(session, data, peerID);
 }
Example #37
0
 /*
  * always return certicate to be accept
  */
 public override bool DidReceiveCertificate(MCSession session, object[] certificate, MCPeerID peerID)
 {
     return MultipeerXT.OnSessionDidReceiveCertificate(session, certificate, peerID);
 }
Example #38
0
 internal static void OnSessionDidStartReceivingResourceWithName(MCSession session, string resourceName, MCPeerID peerID, U3DXT.iOS.Native.Foundation.NSProgress progress)
 {
     if (_sessionStartedReceivingResourceWithNameHandlers != null)
         _sessionStartedReceivingResourceWithNameHandlers(null,
              new SessionStartedReceivingResourceWithNameEventArgs(session, resourceName, peerID, progress));
 }
Example #39
0
 /// <summary>
 /// Initializes a new instance of the <see cref="U3DXT.iOS.Multipeer.SessionReceivedEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_data">_data.</param>
 /// <param name="_peerID">_peer I.</param>
 public SessionReceivedEventArgs(MCSession _session, U3DXT.iOS.Native.Foundation.NSData _data, MCPeerID _peerID)
 {
     session = _session;
     data = _data;
     peerID = _peerID;
 }
 public override void DidFinishReceivingResource(MCSession session, string resourceName, MCPeerID formPeer, NSUrl localUrl, NSError error)
 {
     error = null;
 }
Example #41
0
 internal static void OnSessionDidFinishReceivingResourceWithName(MCSession session, string resourceName, MCPeerID peerID, U3DXT.iOS.Native.Foundation.NSURL localURL, U3DXT.iOS.Native.Foundation.NSError error)
 {
     if (_sessionFinishedReceivingResourceWithNameHandlers != null)
         _sessionFinishedReceivingResourceWithNameHandlers(null,
              new SessionFinishedReceivingResourceWithNameEventArgs(session, resourceName, peerID, localURL, error));
 }
 void StartMultipeerBrowser()
 {
     peer = new MCPeerID ("Monkey");
     session = new MCSession (peer);
     session.Delegate = sessionDelegate;
     browser = new MCBrowserViewController (serviceType, session);
     browser.Delegate = browserDelegate;
     browser.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
     this.PresentViewController (browser, true, null);
 }
 public override void DidChangeState(MCSession session, MCPeerID peerID, MCSessionState state)
 {
     switch (state) {
     case MCSessionState.Connected:
         Console.WriteLine ("Connected: {0}", peerID.DisplayName);
         break;
     case MCSessionState.Connecting:
         Console.WriteLine ("Connecting: {0}", peerID.DisplayName);
         break;
     case MCSessionState.NotConnected:
         Console.WriteLine ("Not Connected: {0}", peerID.DisplayName);
         break;
     }
 }
 void StartMultipeerAdvertiser()
 {
     peer = new MCPeerID ("Player1");
     session = new MCSession (peer);
     session.Delegate = sessionDelegate;
     assistant = new MCAdvertiserAssistant (serviceType, dict, session);
     assistant.Start ();
 }
Example #45
0
 /// <summary>
 /// Initializes a new instance of the <see cref="U3DXT.iOS.Multipeer.SessionChangedEventArgs"/> class.
 /// </summary>
 /// <param name="_session">_session.</param>
 /// <param name="_peerID">_peer I.</param>
 /// <param name="_state">_state.</param>
 public SessionChangedEventArgs(MCSession _session, MCPeerID _peerID, MCSessionState _state)
 {
     session = _session;
     peerID = _peerID;
     state = _state;
 }
Example #46
0
 public override void DidStartReceivingResourceWithName(MCSession session, string resourceName, MCPeerID peerID, U3DXT.iOS.Native.Foundation.NSProgress progress)
 {
     MultipeerXT.OnSessionDidStartReceivingResourceWithName(session, resourceName, peerID, progress);
 }
Example #47
0
        /// <summary>
        /// Starts the advertiser assistant.
        /// </summary>
        /// <param name='displayName'>
        /// The display name for the local peer
        /// </param>
        /// <param name='serviceType'>
        /// The type of service to advertise. Must be 1-15 characters long, only ASCII lower case characters.
        /// </param>
        public static void StartAdvertiserAssistant(string displayName, string serviceType)
        {
            _peerId = new MCPeerID(displayName);
            _session = new MCSession(_peerId);
            _advertiserAssistant = new MCAdvertiserAssistant(serviceType, null, _session);
            _advertiserAssistant.Start();

            _session.Delegate = SessionDelegate.instance;
            _advertiserAssistant.Delegate = AdvertiserAssistantDelegate.instance;
        }
Example #48
0
 public override void DidFinishReceivingResourceWithName(MCSession session, string resourceName, MCPeerID peerID, U3DXT.iOS.Native.Foundation.NSURL localURL, U3DXT.iOS.Native.Foundation.NSError error)
 {
     MultipeerXT.OnSessionDidFinishReceivingResourceWithName(session, resourceName, peerID, localURL, error);
 }
Example #49
0
 internal static void OnSessionDidChange(MCSession session, MCPeerID peerID, MCSessionState state)
 {
     if (_sessionChangedHandlers != null)
         _sessionChangedHandlers(null, new SessionChangedEventArgs(session, peerID, state));
 }
 public override void DidReceiveStream(MCSession session, NSInputStream stream, string streamName, MCPeerID peerID)
 {
 }
Example #51
0
 internal static void OnSessionDidRecieve(MCSession session, U3DXT.iOS.Native.Foundation.NSData data, MCPeerID peerID)
 {
     if (_sessionReceivedHandlers != null)
         _sessionReceivedHandlers(null, new SessionReceivedEventArgs(session, data, peerID));
 }
 public override void DidStartReceivingResource(MCSession session, string resourceName, MCPeerID fromPeer, NSProgress progress)
 {
 }
 public override void DidReceiveData(MCSession session, NSData data, MCPeerID peerID)
 {
     InvokeOnMainThread (() => {
         var alert = new UIAlertView ("", data.ToString (), null, "OK");
         alert.Show ();
     });
 }
Example #54
0
        internal static bool OnSessionDidReceiveCertificate(MCSession session, object[] certificate, MCPeerID peerID)
        {
            SessionDidReceiveCertificateEventArgs certArgs = new SessionDidReceiveCertificateEventArgs(session, certificate, peerID);

            if (_sessionDidReceiveCertificateHandlers != null)
                _sessionDidReceiveCertificateHandlers(null, certArgs);

            return certArgs.acceptCertificate;
        }
Example #55
0
 public override void DidChange(MCSession session, MCPeerID peerID, MCSessionState state)
 {
     MultipeerXT.OnSessionDidChange(session, peerID, state);
 }
Example #56
0
    private void SessionChanged(object sender, SessionChangedEventArgs e)
    {
        Log("Session Changed " + e.state);

        if (e.state == U3DXT.iOS.Native.MultipeerConnectivity.MCSessionState.Connected )
        {
            Log("CONNECTED");

            string path = Application.temporaryCachePath+"/u3dxt.jpg";
            // create some arbitary binary data. or load from existing location
            FileStream someFile = new FileStream(path, FileMode.Create);
            someFile.WriteByte(0x42);
            someFile.Close();

            path = "http://u3dxt.com/wp-content/uploads/2013/06/gears_14662320_s-225x225.jpg";
            _session = e.session;
            _peerId = e.peerID;
            _session.SendResourceAtURL(new U3DXT.iOS.Native.Foundation.NSURL(path), "u3dxt.jpg", e.peerID,  sendResourceCompleted);
        }
    }