프록시 서버를 사용 환경의 mBaaS 연결 방법

8291 단어 프록시mBaasUnity

【Unity×mBaaS】프록시 서버를 사용 환경의 mBaaS 접속 방법


  • Unity에서 니프티 클라우드mobile backend (통칭: mBaaS)를 사용하여 Unity에서 개발을 시작하고 싶은 사람을 위한 문서입니다.
  • 환경:Window7, Windows용 Unity
  • 조건 : 인터넌트 연결 LAN에 프록시 서버를 사용하는 경우

  • 사전 준비 부탁


  • 사전에 니프티 클라우드 모바일 백엔드 등록 와 앱의 신규 작성을 부탁드립니다.

  • 1. 환경 변수 설정


  • 제어판 열기
  • 시스템 열기
  • 고급 시스템 설정 탭 열기
  • 환경 변수 클릭
  • 사용자 환경 변수에 다음을 추가 (값 : 프록시 서버 정보)

  • 사용자 환경 변수 열
        変数名:http_proxy
        変数値:http://アドレス:ポート
    
        変数名:https_proxy
        変数値:http://アドレス:ポート
    
        ※変数名:大文字・小文字は関係ありません。
        ※https_proxy追加は影響ありませんが、一応設定する。
    





    2.NCMBConnection.cs의 메소드 (_returnRequest ()) 마지막에 다음을 추가


  • 위치: Unity Project 이름\Assets\NCMB\Script\NCMBConnection.cs

  • 추가 전

    NCMBConnection.cs
            internal HttpWebRequest _returnRequest ()
            {
                <省略>
                req.Headers.Add (HEADER_ACCESS_CONTROL_ALLOW_ORIGIN, "*");
                return req;
            }
    

    추가 후

    NCMBConnection.cs
            internal HttpWebRequest _returnRequest ()
            {
                <省略>
                req.Headers.Add (HEADER_ACCESS_CONTROL_ALLOW_ORIGIN, "*");
                //UNITYの実行のみ(アプリビルド以外)利用する為Define使って分ける
                #if UNITY_EDITOR
                    //特殊なプロキシ設定追加開始
                    WebProxy myProxy = new WebProxy();
                    //環境変数HTTP_Proxy値を取得・設定する
                    myProxy = (WebProxy)req.Proxy;
                    //ユーザー認証値を設定する
                    myProxy.Credentials = new System.Net.NetworkCredential(Windowユーザー名, Windowパスワード);
                    req.Proxy = myProxy;
                    //特殊なプロキシ設定追加終了
                #endif
                return req;
            } 
    

    환경 변수를 로드할 수 없는 경우

    NCMBConnection.cs
            #if UNITY_EDITOR
                // Platform (Mac)の場合下記を利用
                //特殊なプロキシ設定追加開始
                WebProxy myProxy = new WebProxy();
                //HTTP_Proxy値を直接設定する
                Uri proxyUri = new Uri("http://ユーザー名:パスワード@プロキシのサーバアドレス:ポート");
                myProxy.Address = proxyUri;
                //ユーザー認証値を設定する
                myProxy.Credentials = new System.Net.NetworkCredential(ユーザー名, パスワード);
                req.Proxy = myProxy;
                //特殊なプロキシ設定追加終了
                #endif
    

    3.Unity에서 실행



    정상인 경우



    로그 내용
    【StatusCode】:201
    【Error】:
    



    ※아래의 The request timed out 에러 발생의 경우 Tip



    오류 내용
    【StatusCode】:0
    【Error】:NCMB.NCMBException: The request timed out
    

    <발생 정보>
  • 이유: 환경 변수(http_proxy)가 없는 경우 발생합니다.
  • 대안 : 환경 변수 (http_proxy), 변수 값을 추가합니다.

  • ※아래와 같은 ProxyNameResolutionFailure 에러 발생의 경우 Tip



    오류 내용
    【StatusCode】:0
    【Error】:NCMB.NCMBException: Error: ProxyNameResolutionFailure
    

    <발생 정보>
  • 이유: 변수 값 http://주소: 포트가 올바르지 않을 때 발생합니다.
  • 대안 : 변수 값 http://주소 : 포트가 올바른 값을 설정합니다.

  • ※아래와 같은 SecureChannelFailure 에러 발생의 경우 Tip



    오류 내용
    【StatusCode】:0
    【Error】:NCMB.NCMBException: Error getting response stream (The remote server returned a 407 status code.): SecureChannelFailure
    

    <발생 정보>
  • 이유 : Window 사용자 이름, Window 암호가 올바르지 않으면 발생합니다.
  • 대안 : Window 사용자 이름, Window 암호가 올바른 값을 설정합니다. (NCMBConnection.cs)

  • ※아래와 같은 Signature 에러 발생의 경우 Tip



    오류 내용
    【StatusCode】:403
    【Error】:NCMB.NCMBException: Unauthorized operations for signature.
    【ResponseData】:{"code":"E403002","error":"Unauthorized operations for signature."}
    

    <발생 정보>
  • 이유 : 시그니처를 생성 할 때 키 항목을 "&"로 연결을 만들 때 공백이 있으면 오류가 발생합니다.
  • 대안 : 응용 프로그램 키, 클라이언트 키를 입력 할 때 문자열 끝에 공백이 없도록 설정합니다.

  • 좋은 웹페이지 즐겨찾기