Exemple #1
0
    /// <summary>
    /// 통신 완료후 데이터를 분석하여 처리합니다.
    /// </summary>
    /// <param name="req">통신이 완료된 리퀘스트 객체를 받습니다.</param>
    private void ReceiveHttps(Request req)
    {
        ResponseData data      = null;
        bool         isSuccess = false;
        int          errorCode = (int)ErrorCode.Error;

        try
        {
            Debug.Log("<color=green>@@@ Transmitter [Receive] uri : " + req.uri + "</color>   response : " + req.response.Text);

            // 통신 완료후 에러가 없다면 리퀘스트 객체의 json을 통해 ResponseData 를 얻어옵니다.
            // 이 데이터는 protocolCallback 를 위한 데이터입니다.
            if (req.exception == null)
            {
                data = JsonToResponseData(req.response.Text);
            }

            // data 에 code를 체크해 통신의 성공여부를 확인합니다.
            // 이 데이터는 successCallback 를 위한 데이터입니다.
            if (data != null)
            {
                isSuccess = data.errorCode.Equals((int)ErrorCode.Success);
                errorCode = data.errorCode;
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }
        finally
        {
            if (isSuccess)
            {
                SalinCallbacks.OnEvent(data, type);
            }
            else
            {
                SalinCallbacks.OnError((ErrorCode)data.errorCode, type);
            }

            // 각 콜백, 데이터 유무를 확인하여 콜백 실행
            ////아직 어떤 식으로 처리 해야할지 정해야됨
            //errorHandler.ExcuteCallback(errorCode, () =>
            //{
            //    callback.OnEvent(isSuccess, data, type);

            //    //if (protocolCallback != null)
            //    //	protocolCallback(data);

            //    //if (successCallback != null)
            //    //	successCallback(isSuccess);
            //});


            // 통신완료후 데이터를 초기화합니다.
            // 해당 함수 안에서 통신중을 알리는 플래그가 해제됩니다. - isTransmitData
            ClearData();
        }
    }
Exemple #2
0
    void SpeakerLinkOff(Speaker speaker)
    {
        string key = speakerDic.FirstOrDefault(x => x.Value == speaker).Key;

        speakerDic.Remove(key);
        Destroy(speaker.gameObject);
        SalinCallbacks.OnUserDisconnectVoice(key);
    }
Exemple #3
0
 public void OnDisconnected(Photon.Realtime.DisconnectCause cause)
 {
     SalinCallbacks.OnDisconnectVoice();
     Destroy(this.gameObject);
     //Debug.LogErrorFormat("OnDisconnected cause={0}", cause);
     //if (cause == Photon.Realtime.DisconnectCause.None || cause == Photon.Realtime.DisconnectCause.DisconnectByClientLogic)
     //{
     //    return;
     //}
 }
Exemple #4
0
 public void OnJoinedRoom()
 {
     if (this.autoTransmit)
     {
         if (voiceConnection.PrimaryRecorder == null)
         {
             voiceConnection.PrimaryRecorder = this.GetComponent <Recorder>();
         }
         voiceConnection.PrimaryRecorder.TransmitEnabled = autoTransmit;
         voiceConnection.PrimaryRecorder.Init(voiceConnection.VoiceClient);
     }
     SalinCallbacks.OnConnectVoice();
 }
Exemple #5
0
    /// <summary>
    /// 유저 접속시 들어오는 구문
    /// 스피커 프리팹이 생성될때 불립니다.
    /// 입장한 유저의 닉네임과 아이디를 저장합니다.
    /// </summary>
    /// <param name="speaker"></param>
    void SpeakerLinkOn(Speaker speaker)
    {
        speaker.enabled = !isMute;
        speaker.OnRemoteVoiceRemoveAction += SpeakerLinkOff;

        object speakerNickName;
        object speakerID;

        speaker.Actor.CustomProperties.TryGetValue(SalinAPIKey.nickname, out speakerNickName);
        speaker.Actor.CustomProperties.TryGetValue(SalinAPIKey.userID, out speakerID);

        if (speakerDic.ContainsKey((string)speakerID) || (string)speakerID == id)
        {
            Debug.LogError("동일한 키(id)값이 이미 들어있습니다.");
            SalinCallbacks.OnUserConnectVoiceFail(SalinSDK.ErrorCode.Error);
            Destroy(speaker.gameObject);
        }
        else
        {
            speakerDic.Add((string)speakerID, speaker);
            SalinCallbacks.OnUserConnectVoice((string)speakerNickName, (string)speakerID);
        }
    }
Exemple #6
0
 public void OnJoinRoomFailed(short returnCode, string message)
 {
     SalinCallbacks.OnConnectVoiceFail(SalinSDK.ErrorCode.Error);
 }