Пример #1
0
    private void SendClientData()
    {
        ClientData data = new ClientData(userID);
        string     json = JsonUtility.ToJson(data);

        CircleVRNetwork.Send(CircleVRPacketType.ClientInfo, CircleVRNetwork.StringToByte(json), connectionId, CircleVRNetwork.reliableChannel);
    }
    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;
        }
    }
Пример #3
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;
            }
        }
    }
 private void OnNext()
 {
     CircleVRNetwork.SendBroadcast(CircleVRPacketType.Next, CircleVRNetwork.reliableChannel);
     if (Event != null)
     {
         Event.OnNext();
     }
     Debug.Log("[INFO] Content Server Send Next");
 }
    public void Init(Configuration config, CircleVRHost host, int maxClientCount)
    {
        CircleVRNetwork.Init(config.circlevr.serverPort, maxClientCount);

        this.config = config;

        this.host = host;
        InitPacket();

        initFinished = true;
    }
    private void OnStop()
    {
        state      = CircleVRServerState.Ready;
        elapseTime = 0.0f;

        CircleVRNetwork.SendBroadcast(CircleVRPacketType.Stop, CircleVRNetwork.reliableChannel);
        if (Event != null)
        {
            Event.OnStop();
        }
        Debug.Log("[INFO] Content Server Send Stop");
    }
    private void AddConnectedPair(UserIDAndConnectionIDPair pair)
    {
        Packet.TrackerData trackerData = GetTrackerDataInPacket(pair.userID);
        trackerData.connected = true;

        CircleVRNetwork.Send(CircleVRPacketType.HostInfo,
                             CircleVRNetwork.StringToByte(JsonUtility.ToJson(new HostInfo(config.circlevr.showBarrier, config.circlevr.safetyBarrierRadius))),
                             pair.connectionId, CircleVRNetwork.reliableChannel);

        connectedPairs.Add(pair);
        CircleVRDisplay.GetHead(CircleVR.GetPair(pair.userID).trackerID).Connected = true;

        Debug.Log("[CircleVR Host Network] Connected User ID : " + pair.userID);
    }
    private void SendTrackingData()
    {
        foreach (Packet.TrackerData trackerData in packet.trackerDatas)
        {
            UpdatePacket(trackerData);
        }

        foreach (UserIDAndConnectionIDPair connection in connectedPairs)
        {
            CircleVRNetwork.Send(CircleVRPacketType.TrackingData,
                                 CircleVRNetwork.StringToByte(JsonUtility.ToJson(packet)),
                                 connection.connectionId, CircleVRNetwork.stateUpdateChannel);
        }
    }
    private void OnPause()
    {
        if (state == CircleVRServerState.Pause)
        {
            return;
        }

        state = CircleVRServerState.Pause;
        CircleVRNetwork.SendBroadcast(CircleVRPacketType.Pause, CircleVRNetwork.reliableChannel);
        if (Event != null)
        {
            Event.OnPause();
        }
        Debug.Log("[INFO] Content Server Send Pause");
    }
    public void OnData(int connectionId, int channelId, byte key, byte[] data, byte error)
    {
        CircleVRPacketType type = (CircleVRPacketType)key;

        if (type == CircleVRPacketType.RequestServerContentInfo)
        {
            string contentServerStatus = JsonUtility.ToJson(GetContentServerStatus());
            CircleVRNetwork.Send(CircleVRPacketType.ServerContentInfo, CircleVRNetwork.StringToByte(contentServerStatus), connectionId, CircleVRNetwork.reliableChannel);
            Debug.Log("[INFO] Send Content Server Status");
            return;
        }

        if (Event != null)
        {
            Event.OnData(connectionId, channelId, key, data, error);
        }
    }
    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);
        }
    }
 public void OnConnect(int connectionID, byte error)
 {
     CircleVRNetwork.Send(CircleVRPacketType.RequestServerContentInfo, connectionID, CircleVRNetwork.reliableChannel);
 }
Пример #13
0
 private void Awake()
 {
     CircleVRNetwork.Init(1);
     CircleVRClient.Event = this;
     CircleVRNetwork.events.Add(this);
 }
Пример #14
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;
        }
    }