Ejemplo n.º 1
0
 public void JoinSession(string session)
 {
     if (currentJoinedSession != null)
     {
         LeaveSession();
     }
     AllJoyn.QStatus status = AllJoyn.QStatus.NONE;
     if (sessionListener != null)
     {
         status          = msgBus.SetSessionListener(null, currentSessionId);
         sessionListener = null;
         if (!status)
         {
             chatText = "SetSessionListener failed status(" + status.ToString() + ")\n" + chatText;
             Debug.Log("SetSessionListener status(" + status.ToString() + ")");
         }
     }
     sessionListener = new MySessionListener();
     chatText        = "About to call JoinSession (Session=" + session + ")\n" + chatText;
     Debug.Log("About to call JoinSession (Session=" + session + ")");
     status = msgBus.JoinSession(session, SERVICE_PORT, sessionListener, out currentSessionId, opts);
     if (status)
     {
         chatText = "Client JoinSession SUCCESS (Session id=" + currentSessionId + ")\n" + chatText;
         Debug.Log("Client JoinSession SUCCESS (Session id=" + currentSessionId + ")");
         currentJoinedSession = session;
     }
     else
     {
         chatText = "Chat JoinSession failed (status=" + status.ToString() + ")\n" + chatText;
         Debug.Log("Chat JoinSession failed (status=" + status.ToString() + ")");
     }
 }
Ejemplo n.º 2
0
    public bool Connect()
    {
        if (sJoinComplete)
        {
            return(sJoinComplete);
        }

        sJoinCalled = true;
        // We found a remote bus that is advertising basic service's  well-known name so connect to it
        AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts(AllJoyn.SessionOpts.TrafficType.Messages, false,
                                                           AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any);

        uint sessionId;

        Debug.Log("kcwon Client JoinSession sFoundName = " + sFoundName);
        Debug.Log("kcwon Client JoinSession SERVICE_PORT = " + SERVICE_PORT);

        AllJoyn.QStatus status = msgBus.JoinSession(sFoundName, SERVICE_PORT, sessionListener, out sessionId, opts);
        if (status)
        {
            serverText += "Client JoinSession SUCCESS (Session id=" + sessionId + ")\n";
            Debug.Log("Client JoinSession SUCCESS (Session id=" + sessionId + ")");
            sJoinComplete = true;
            theSessionId  = sessionId;
        }
        else
        {
            serverText += "Client JoinSession failed (status=" + status.ToString() + ")\n";
            Debug.Log("Client JoinSession failed (status=" + status.ToString() + ")");
            ajNet.manager.connectFail();
        }

        return(sJoinComplete);
    }
Ejemplo n.º 3
0
        public bool JoinSession(string session)
        {
            AllJoyn.QStatus status = AllJoyn.QStatus.NONE;
            if (sessionListener != null)
            {
                status          = msgBus.SetSessionListener(null, currentSessionId);
                sessionListener = null;
                if (!status)
                {
                    Debug.LogError("SetSessionListener status(" + status.ToString() + ")");
                }
            }
            sessionListener = new MySessionListener(this);
            //Debug.LogError("About to call JoinSession (Session=" + session + ")");
            status = msgBus.JoinSession(session, SERVICE_PORT, sessionListener, out currentSessionId, opts);
            if (status)
            {
                //Debug.LogError("Client JoinSession SUCCESS (Session id=" + currentSessionId + ")");
                currentJoinedSession = session;
            }
            else
            {
                //Debug.LogError("RHR JoinSession failed (status=" + status.ToString() + ")");
            }

            return(status ? true : false);
        }
Ejemplo n.º 4
0
        public void ConnectToFoundName()
        {
            sJoinCalled = true;
            // We found a remote bus that is advertising basic service's  well-known name so connect to it
            AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts(AllJoyn.SessionOpts.TrafficType.Messages, false,
                                                               AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any);

            AllJoyn.QStatus status = sMsgBus.JoinSession(sFoundName, SERVICE_PORT, null, out sSessionId, opts);
            if (status)
            {
                clientText += "Client JoinSession SUCCESS (Session id=" + sSessionId + ")\n";
                Debug.Log("Client JoinSession SUCCESS (Session id=" + sSessionId + ")");
                sJoinComplete = true;
            }
            else
            {
                clientText += "Client JoinSession failed (status=" + status.ToString() + ")\n";
                Debug.Log("Client JoinSession failed (status=" + status.ToString() + ")");
            }
        }
Ejemplo n.º 5
0
        public void TestSessionJoined()
        {
            AllJoyn.QStatus status = AllJoyn.QStatus.FAIL;

            // create+start+connect bus attachment
            AllJoyn.BusAttachment servicebus = null;
            servicebus = new AllJoyn.BusAttachment("SessionTestService", true);
            Assert.NotNull(servicebus);

            status = servicebus.Start();
            Assert.Equal(AllJoyn.QStatus.OK, status);

            status = servicebus.Connect(AllJoynTestCommon.GetConnectSpec());
            Assert.Equal(AllJoyn.QStatus.OK, status);

            // Create session
            AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts(
                AllJoyn.SessionOpts.TrafficType.Messages, false,
                AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any);
            ushort sessionPort = SERVICE_PORT;

            // create the session port listener
            AllJoyn.SessionPortListener sessionPortListener = new TestSessionPortListener(this);

            // bind to the session port
            status = servicebus.BindSessionPort(ref sessionPort, opts, sessionPortListener);
            Assert.Equal(AllJoyn.QStatus.OK, status);

            // request name
            status = servicebus.RequestName(OBJECT_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue);
            Assert.Equal(AllJoyn.QStatus.OK, status);

            // Advertise name
            status = servicebus.AdvertiseName(OBJECT_NAME, opts.Transports);
            Assert.Equal(AllJoyn.QStatus.OK, status);

            ///////////////////////////////////////////////////////////
            foundAdvertisedNameFlag = false;
            acceptSessionJoinerFlag = false;
            sessionJoinedFlag       = false;

            // try to join the session & verify callbacks are called
            AllJoyn.BusAttachment bus = null;
            bus = new AllJoyn.BusAttachment("SessionTest", true);
            Assert.NotNull(bus);

            status = bus.Start();
            Assert.Equal(AllJoyn.QStatus.OK, status);

            status = bus.Connect(AllJoynTestCommon.GetConnectSpec());
            Assert.Equal(AllJoyn.QStatus.OK, status);

            // register the bus listener
            AllJoyn.BusListener busListener = new TestBusListener(this);
            bus.RegisterBusListener(busListener);

            // find the advertised name from the "servicebus"
            status = bus.FindAdvertisedName(OBJECT_NAME);
            Assert.Equal(AllJoyn.QStatus.OK, status);
            EventWaitHandle ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "FoundAdvertisedName");

            ewh.WaitOne(MaxWaitTime);
            Assert.Equal(true, foundAdvertisedNameFlag);

            // try to join & verify that the sessionedJoined callback was called
            uint sSessionId;

            status = bus.JoinSession(OBJECT_NAME, SERVICE_PORT, null, out sSessionId, opts);
            Assert.Equal(AllJoyn.QStatus.OK, status);
            ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionJoined");
            ewh.WaitOne(MaxWaitTime);
            Assert.Equal(true, acceptSessionJoinerFlag);
            Assert.Equal(true, sessionJoinedFlag);
            servicebus.ReleaseName(OBJECT_NAME);
            servicebus.Dispose();
            bus.Dispose();
        }