示例#1
0
    public void OnData(int connectionId, int channelId, byte key, byte[] data, byte error)
    {
        CircleVRPacketType type = (CircleVRPacketType)key;

        if (!connected)
        {
            if (type == CircleVRPacketType.Error)
            {
                CircleVRError cvError = JsonUtility.FromJson <CircleVRError>(CircleVRNetwork.ByteToString(data));
                Debug.Log("[INFO] Error : " + cvError.type.ToString());

                if (cvError.type == CircleVRErrorType.AlreadyHasUserID || cvError.type == CircleVRErrorType.NotFoundUserIDInPairs)
                {
                    connecting = false;
                }
                return;
            }

            if (type == CircleVRPacketType.HostInfo)
            {
                Debug.Log("[INFO] Circle VR Connect Succeed!");

                HostInfo hostInfo = JsonUtility.FromJson <HostInfo>(CircleVRNetwork.ByteToString(data));

                CircleVRDisplay.InitBarrier(hostInfo.safetyBarrierRadius, hostInfo.showBarrier);

                connected  = true;
                connecting = false;
                CircleVRNetwork.Send(CircleVRPacketType.RequestServerContentInfo, connectionId, CircleVRNetwork.reliableChannel);
                return;
            }
        }
    }
    public void OnData(int connectionId, int channelId, byte key, byte[] data, byte error)
    {
        CircleVRPacketType type = (CircleVRPacketType)key;

        if (type == CircleVRPacketType.VideoPlayer)
        {
            ContentName name = new ContentName(CircleVR.ContentName);
            string      msg  = JsonUtility.ToJson(name);

            CircleVRNetwork.Send(CircleVRPacketType.Name, CircleVRNetwork.StringToByte(msg), connectionId, CircleVRNetwork.reliableChannel);
            Debug.Log("[CircleVR Host Network] Send ContentName To Video Player : " + msg);
            return;
        }

        if (type == CircleVRPacketType.ClientInfo)
        {
            ClientData clientData = JsonUtility.FromJson <ClientData>(CircleVRNetwork.ByteToString(data));

            CircleVRErrorType cvError;

            if (host.AddConnectedUserIDs(clientData.userId, out cvError))
            {
                AddConnectedPair(new UserIDAndConnectionIDPair(clientData.userId, connectionId));
                return;
            }

            CircleVRNetwork.SendError(connectionId, cvError);
            Disconnect(CircleVRNetwork.hostID, connectionId, error);
            Debug.Log("[CircleVR Host Network] Connect Failed : " + cvError.ToString() + "\nUser ID : " + clientData.userId);
            return;
        }
    }
    public void OnData(int connectionId, int channelId, byte key, byte[] data, byte error)
    {
        CircleVRPacketType type = (CircleVRPacketType)key;

        if (type == CircleVRPacketType.ServerContentInfo)
        {
            Debug.Log("[INFO] Receive Content Server Status");

            ContentServerStatus contentServerStatus = JsonUtility.FromJson <ContentServerStatus>(CircleVRNetwork.ByteToString(data));

            if (Event != null)
            {
                Event.OnContentServerStatusReceived(contentServerStatus);
            }

            return;
        }

        if (type == CircleVRPacketType.Play)
        {
            OnPlay();
            return;
        }

        if (type == CircleVRPacketType.Pause)
        {
            OnPause();
            return;
        }

        if (type == CircleVRPacketType.Stop)
        {
            OnStop();
            return;
        }

        if (type == CircleVRPacketType.Next)
        {
            OnNext();
            return;
        }

        if (Event != null)
        {
            Event.OnData(connectionId, channelId, key, data, error);
        }
    }
示例#4
0
    public void OnData(int connectionId, int channelId, byte key, byte[] data, byte error)
    {
        CircleVRPacketType type = (CircleVRPacketType)key;

        if (type == CircleVRPacketType.TrackingData)
        {
            CircleVRHostNetwork.Packet packet = JsonUtility.FromJson <CircleVRHostNetwork.Packet>(CircleVRNetwork.ByteToString(data));

            foreach (CircleVRHostNetwork.Packet.TrackerData trackerData in packet.trackerDatas)
            {
                Debug.Assert(trackerData != null);
                SetTrackerTransform(trackerData);
                CircleVRDisplay.GetHead(trackerData.onAirVRUserID).Connected = trackerData.connected;
            }
            return;
        }
    }