Kaynağa Gözat

多服务器版本

lvjincheng 3 yıl önce
ebeveyn
işleme
8f7b7ab2de

+ 8 - 0
Assets/BowArrow/Resources/Captcha.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ec3be3be89a99f243af302f78e84e0a3
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/BowArrow/Resources/Captcha/3825.jpg


+ 120 - 0
Assets/BowArrow/Resources/Captcha/3825.jpg.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: def58298935a7b649ac191541be315b5
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/BowArrow/Resources/Captcha/4472.jpg


+ 120 - 0
Assets/BowArrow/Resources/Captcha/4472.jpg.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 7ff9722af32c438458edc0553e131df5
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/BowArrow/Resources/Captcha/9483.jpg


+ 120 - 0
Assets/BowArrow/Resources/Captcha/9483.jpg.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 7d5f9604e27cb7a49b82fd9d1409ba74
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 2
Assets/BowArrow/Scripts/Bluetooth/AimHandler.cs

@@ -37,8 +37,8 @@ public class AimHandler : MonoBehaviour
         ins = this;
         BluetoothDispatcher.aim = OnDataReceived;
 
-        // m_axisHandler = new Axis9NopackHandler(this); //九轴旧
-        m_axisHandler = new Axis9Handler(this);  //九轴新
+        m_axisHandler = new Axis9NopackHandler(this); //九轴旧
+        // m_axisHandler = new Axis9Handler(this);  //九轴新
         // m_axisHandler = new Axis663Handler(this); //双陀螺仪
         m_axisHandler.Init();
 

+ 8 - 22
Assets/BowArrow/Scripts/CommonConfig.cs

@@ -33,40 +33,26 @@ public class CommonConfig
 
     public enum ServerType {LocalTest, Produce};
     private static ServerType serverType = ServerType.Produce;
-    //业务服务端访问地址
-    public static string businessServerURI {
+    //网关服务器访问地址
+    public static string gateServerURL {
         get {
             if (serverType == ServerType.LocalTest) {
                 return "http://192.168.137.1:11332/SmartBowBusinessServer";
             } 
             if (serverType == ServerType.Produce) {
-                return "https://xmjssvr.cn/SmartBowBusinessServer";
+                return "http://18.163.110.187/SmartBowBusinessServer";
             } 
             return "";
         }
     }
     //业务服务端WS访问地址
-    public static string businessServerWsURI {
-        get {
-            if (serverType == ServerType.LocalTest) {
-                return "ws://192.168.137.1:11333/SmartBowBusinessServerSK";
-            } 
-            if (serverType == ServerType.Produce) {
-                return "wss://xmjssvr.cn/SmartBowBusinessServerSK";
-            } 
-            return "";
-        }
-    }
+    public static string businessServerWsURL;
     //游戏对战服务器
-    public static string gamePKServerWsURI {
+    public static string gamePKServerWsURL;
+    public static int serverIndex {
         get {
-            if (serverType == ServerType.LocalTest) {
-                return "ws://192.168.137.1:11811/SmartBowGameServer";
-            } 
-            if (serverType == ServerType.Produce) {
-                return "wss://xmjssvr.cn/SmartBowGameServer";
-            } 
-            return "";
+            if (AppLanguage == 0) return 0;
+            else return 1;
         }
     }
 }

+ 3 - 0
Assets/BowArrow/Scripts/Components/TextAutoLanguage2/Resources/TextAutoLanguage2/cn.json

@@ -13,6 +13,9 @@
     "register_title_region": "所在地区:",
     "register_placeholder_birthday": "年-月-日",
     "register_placeholder_region": "国-省-市",
+
+    "home_loginAuth": "正在认证登录。。。",
+
     "course_btn-see": "查看",
     "course_title_0": "新手指导",
     "course_title_1": "弓的介绍及护具佩戴",

+ 6 - 1
Assets/BowArrow/Scripts/Components/TextAutoLanguage2/Resources/TextAutoLanguage2/en.json

@@ -13,6 +13,9 @@
     "register_title_region": "Region :",
     "register_placeholder_birthday": "Year-Month-Day",
     "register_placeholder_region": "Country-State-City",
+
+    "home_loginAuth": "Authenticating Login ...",
+
     "course_btn-see": "see",
     "course_title_0": "Novice guidance",
     "course_title_1": "Introduction of bow and equipment",
@@ -175,5 +178,7 @@
     "你尚未设置所属地区,无法查看该排行榜!": "You haven't set your region yet!",
     "输入值不在常规范围内": "The input value is not within the normal range",
     "转化比率 = ": "Conversion ratio = ",
-    "手机号格式不正确": "Incorrect mobile phone number format"
+    "手机号格式不正确": "Incorrect mobile phone number format",
+    "该账号不属于当前服务区": "This account does not belong to the current service area",
+    "服务区ID非法": "Illegal service area ID"
 }

+ 5 - 1
Assets/BowArrow/Scripts/Manager/HomeMgr.cs

@@ -51,7 +51,11 @@ public class HomeMgr : MonoBehaviour
 
     //登录认证的Mask
     public void ShowAuthLoginMask(bool visiable) {
-        transform.Find("AuthLoginMask").gameObject.SetActive(visiable);
+        var mask =  transform.Find("AuthLoginMask");
+        mask.gameObject.SetActive(visiable);
+        if (visiable) {
+            mask.GetComponentInChildren<Text>().text = TextAutoLanguage2.GetTextByKey("home_loginAuth");
+        }
     }
 
     public void SetAuthLoginText(string text) {

+ 2 - 2
Assets/BowArrow/Scripts/Manager/LoginMgr/AgreementView.cs

@@ -43,7 +43,7 @@ public class AgreementView : MonoBehaviour, MenuBackInterface
 
     //http
     IEnumerator GetUserAgreement() {
-        string url = CommonConfig.businessServerURI + "/app/getUserAgreement" + GetLanguageParam();
+        string url = CommonConfig.gateServerURL + "/app/getUserAgreement" + GetLanguageParam();
         using (UnityWebRequest request = UnityWebRequest.Get(url)) {
             yield return request.SendWebRequest();
             if (request.result == UnityWebRequest.Result.Success) {
@@ -52,7 +52,7 @@ public class AgreementView : MonoBehaviour, MenuBackInterface
         }
     }
     IEnumerator GetPrivacyAgreement() {
-        string url = CommonConfig.businessServerURI + "/app" + GetLanguageDir() + "/privacy-policy";
+        string url = CommonConfig.gateServerURL + "/app" + GetLanguageDir() + "/privacy-policy";
         using (UnityWebRequest request = UnityWebRequest.Get(url)) {
             yield return request.SendWebRequest();
             if (request.result == UnityWebRequest.Result.Success) {

+ 3 - 3
Assets/BowArrow/Scripts/Manager/LoginMgr/LoginMgr.cs

@@ -31,10 +31,10 @@ public class LoginMgr : MonoBehaviour
         forgetPWD_View.SetActive(true);
         AgreenmentOption.ins.gameObject.SetActive(false);
     }
-
+    public const string LoginTokenKey = "LoginToken";
     public static bool HasToken() {
-        string IdAndToken = PlayerPrefs.GetString("IdAndToken", "");
-        return string.IsNullOrEmpty(IdAndToken) ? false : true;
+        string loginToken = PlayerPrefs.GetString(LoginMgr.LoginTokenKey, "");
+        return string.IsNullOrEmpty(loginToken) ? false : true;
     }
 
     void Awake() {

+ 6 - 4
Assets/BowArrow/Scripts/Manager/LoginMgr/LoginView.cs

@@ -178,8 +178,9 @@ public class LoginView : MonoBehaviour
             user.text, pwd.text, (res) => {
                 PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey(res.msg));
                 if (res.code == 0) {
-                    string IdAndToken = (string)res.data;
-                    PlayerPrefs.SetString("IdAndToken", IdAndToken);
+                    string loginToken = (string)res.data;
+                    CommonConfig.businessServerWsURL = loginToken.Split('&')[2];
+                    PlayerPrefs.SetString(LoginMgr.LoginTokenKey, loginToken);
                     SceneManager.LoadScene("Home", LoadSceneMode.Single);
                 }
             }
@@ -198,8 +199,9 @@ public class LoginView : MonoBehaviour
             user.text, (res) => {
                 PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey(res.msg));
                 if (res.code == 0) {
-                    string IdAndToken = (string)res.data;
-                    PlayerPrefs.SetString("IdAndToken", IdAndToken);
+                    string loginToken = (string)res.data;
+                    CommonConfig.businessServerWsURL = loginToken.Split('&')[2];
+                    PlayerPrefs.SetString(LoginMgr.LoginTokenKey, loginToken);
                     SceneManager.LoadScene("Home", LoadSceneMode.Single);
                 }
             }

+ 8 - 1
Assets/BowArrow/Scripts/Network/HttpController/CaptchaController.cs

@@ -8,10 +8,17 @@ using UnityEngine.UI;
 /* Http控制器-验证码 */
 public class CaptchaController : JCUnityLib.Singleton<CaptchaController>
 {
+    int[] builtInCaptchaList = {3825, 4472, 9483};
+
     public IEnumerator GetCaptcha(Image targetRenderImage, Action<int> cb)
     {
+        if (targetRenderImage.sprite == null) {
+            int codeA = builtInCaptchaList[UnityEngine.Random.Range(0, 3)];
+            targetRenderImage.sprite = Resources.Load<Sprite>("Captcha/" + codeA);
+            if (cb != null) cb(codeA);
+        }
         int code = UnityEngine.Random.Range(1000, 10000);
-        using (UnityWebRequest uwr = new UnityWebRequest(CommonConfig.businessServerURI + "/api/createCaptcha?code=" + code, UnityWebRequest.kHttpVerbGET)) {
+        using (UnityWebRequest uwr = new UnityWebRequest(CommonConfig.gateServerURL + "/api/createCaptcha?code=" + code, UnityWebRequest.kHttpVerbGET)) {
             uwr.downloadHandler = new DownloadHandlerTexture();
             yield return uwr.SendWebRequest();
             Texture2D texture = DownloadHandlerTexture.GetContent(uwr);

+ 19 - 4
Assets/BowArrow/Scripts/Network/HttpController/LoginController.cs

@@ -9,10 +9,11 @@ using Newtonsoft.Json;
 public class LoginController : JCUnityLib.Singleton<LoginController>
 {
     public IEnumerator LoginNormal(string username, string password, Action<RequestResult> callback) {
-        string url = CommonConfig.businessServerURI + "/gameLogin/loginNormal";
+        string url = CommonConfig.gateServerURL + "/gameLogin/loginNormal";
         WWWForm form = new WWWForm();
         form.AddField("username", username);
         form.AddField("password", password);
+        form.AddField("serverIndex", CommonConfig.serverIndex);
         using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
             yield return request.SendWebRequest();
             RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
@@ -21,10 +22,11 @@ public class LoginController : JCUnityLib.Singleton<LoginController>
     }
 
     public IEnumerator Register(string username, string password, Action<RequestResult> callback) {
-        string url = CommonConfig.businessServerURI + "/gameLogin/register";
+        string url = CommonConfig.gateServerURL + "/gameLogin/register";
         WWWForm form = new WWWForm();
         form.AddField("username", username);
         form.AddField("password", password);
+        form.AddField("serverIndex", CommonConfig.serverIndex);
         using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
             yield return request.SendWebRequest();
             RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
@@ -38,7 +40,7 @@ public class LoginController : JCUnityLib.Singleton<LoginController>
         string countryCode, string stateCode, string cityCode,
         Action<RequestResult> callback
     ) {
-        string url = CommonConfig.businessServerURI + "/gameLogin/completeUserInfo";
+        string url = CommonConfig.gateServerURL + "/gameLogin/completeUserInfo";
         WWWForm form = new WWWForm();
         form.AddField("username", username);
         form.AddField("password", password);
@@ -56,7 +58,7 @@ public class LoginController : JCUnityLib.Singleton<LoginController>
     }
 
     public IEnumerator LoginByPhone(string phone, Action<RequestResult> callback) {
-        string url = CommonConfig.businessServerURI + "/gameLogin/loginByPhone";
+        string url = CommonConfig.gateServerURL + "/gameLogin/loginByPhone";
         WWWForm form = new WWWForm();
         form.AddField("phone", phone);
         using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
@@ -65,6 +67,19 @@ public class LoginController : JCUnityLib.Singleton<LoginController>
             if (callback != null) callback(requestResult);
         }
     }
+
+    public IEnumerator LoginByToken(Action<RequestResult> callback) {
+        string url = CommonConfig.gateServerURL + "/gameLogin/loginByToken";
+        WWWForm form = new WWWForm();
+        form.AddField("token", PlayerPrefs.GetString(LoginMgr.LoginTokenKey));
+        form.AddField("sceneName", UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
+        form.AddField("serverIndex", CommonConfig.serverIndex);
+        using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
+            yield return request.SendWebRequest();
+            RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
+            if (callback != null) callback(requestResult);
+        }
+    }
 }
 
 public class RequestResult {

+ 2 - 1
Assets/BowArrow/Scripts/Network/SocketComp/PKComp.cs

@@ -47,10 +47,11 @@ public class PKComp : JCUnityLib.Singleton<PKComp>
     }
 
     //被服务端调用的接口
-    public void onGamePKMatchSuccess(List<MatchPlayerInfo> playerInfoList, int playerIndexInRoom, string roomKey) {
+    public void onGamePKMatchSuccess(List<MatchPlayerInfo> playerInfoList, int playerIndexInRoom, string roomKey, string pkServerURL) {
         GlobalData.roomKey = roomKey;
         GlobalData.matchPlayerInfos = playerInfoList;
         GlobalData.playerIndexInRoom = playerIndexInRoom;
+        CommonConfig.gamePKServerWsURL = pkServerURL;
         if (PKMatchingView.ins) {
             PKMatchingView.ins.EnterGameSceneOnMatchSuccess();
         }

+ 1 - 1
Assets/BowArrow/Scripts/Network/SocketPlayer.cs

@@ -27,7 +27,7 @@ public class SocketPlayer : JC.SocketIO.SocketIOClient
     
     void Start()
     {
-        connectServer(CommonConfig.gamePKServerWsURI);
+        connectServer(CommonConfig.gamePKServerWsURL);
     }
 
     public override void onLoad()

+ 39 - 21
Assets/BowArrow/Scripts/Network/UserPlayer.cs

@@ -4,6 +4,7 @@ using UnityEngine;
 using JCEngineCore;
 using UnityEngine.SceneManagement;
 using DG.Tweening;
+using JCUnityLib;
 /* Socket组件-玩家业务 */
 public class UserPlayer : JCEntity
 {
@@ -16,7 +17,20 @@ public class UserPlayer : JCEntity
     public static void ConnectServer() {
         if (ins != null) return;
         if (HomeMgr.ins) HomeMgr.ins.ShowAuthLoginMask(true);
-        JCEngine.boot(CommonConfig.businessServerWsURI, new UserPlayer());
+        if (CommonConfig.businessServerWsURL != null) {
+            JCEngine.boot(CommonConfig.businessServerWsURL, new UserPlayer());
+        } else {
+            CoroutineStarter.Start(LoginController.Instance.LoginByToken((res) => {
+                if (res.code == 0) {
+                    string loginToken = (string)res.data;
+                    CommonConfig.businessServerWsURL = loginToken.Split('&')[2];
+                    PlayerPrefs.SetString(LoginMgr.LoginTokenKey, loginToken);
+                    JCEngine.boot(CommonConfig.businessServerWsURL, new UserPlayer());
+                } else {
+                    handleAuthExpire();
+                }
+            }));
+        }
     }
     //之所以做成协程延迟触发,是因为用编辑器调试时,停止运行后会触发断线重连,就会造成游戏停止调试了,但socket还连接的现象。
     IEnumerator ReconnenctServer() {
@@ -51,7 +65,6 @@ public class UserPlayer : JCEntity
     }
 
     public void Close() {
-        PlayerPrefs.DeleteKey("IdAndToken");
         LoginMgr.myUserInfo.id = 0;
         if (ins == this) ins = null;
         this.canReconnnect = false;
@@ -61,12 +74,7 @@ public class UserPlayer : JCEntity
 
     //向服务端发送的请求
     public void authToken() {
-        string p0 = PlayerPrefs.GetString("IdAndToken", "");
-        #if UNITY_EDITOR
-            if (string.IsNullOrEmpty(p0)) {
-                p0 = "12&f29f72fcba4b4a63aa4f965b5d603a4e";
-            } 
-        #endif
+        string p0 = PlayerPrefs.GetString(LoginMgr.LoginTokenKey, "");
         string p1 = SceneManager.GetActiveScene().name;
         call("authToken2", p0, p1);
     }
@@ -99,21 +107,31 @@ public class UserPlayer : JCEntity
                 }
             });            
         } else {
-            //tip
-            if (HomeMgr.ins && HomeMgr.ins.IsAuthLoginMaskActive()) {
-                HomeMgr.ins.SetAuthLoginText(TextAutoLanguage2.GetTextByCNKey("登录认证过期"));
+            handleAuthExpire();
+        }
+    }
+
+    private static void handleAuthExpire()
+    {
+        //tip
+        if (HomeMgr.ins && HomeMgr.ins.IsAuthLoginMaskActive()) {
+            HomeMgr.ins.SetAuthLoginText(TextAutoLanguage2.GetTextByCNKey("登录认证过期"));
+        } else {
+            PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("登录认证过期"));
+        }
+        //delay back login
+        Sequence seq = DOTween.Sequence();
+        seq.AppendInterval(1.5f);
+        seq.AppendCallback(() => {
+            if (SceneManager.GetActiveScene().name.Equals("Home")) {
+                SceneManager.LoadScene("Login", LoadSceneMode.Single);
             } else {
-                PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("登录认证过期"));
+                Application.Quit(); //不是Home场景,就关闭游戏
             }
-            //delay back login
-            Sequence seq = DOTween.Sequence();
-            seq.AppendInterval(1.5f);
-            seq.AppendCallback(() => {
-                SceneManager.LoadScene("Login", LoadSceneMode.Single);
-            });
-            //close userplayer
-            Close();
-        }
+        });
+        //close userplayer
+        PlayerPrefs.DeleteKey(LoginMgr.LoginTokenKey);
+        ins?.Close();
     }
 
     public void onRequestAddFriend() {

+ 1 - 0
Assets/BowArrow/Scripts/View/SetUpView1.cs

@@ -67,6 +67,7 @@ public class SetUpView1 : MonoBehaviour, MenuBackInterface
     public void QuitLogin() 
     {
         AudioMgr.ins.PlayBtn();
+        PlayerPrefs.DeleteKey(LoginMgr.LoginTokenKey);
         UserPlayer.ins?.Close();
         SceneManager.LoadScene("Login", LoadSceneMode.Single);
     }

+ 3 - 3
ProjectSettings/ProjectSettings.asset

@@ -159,7 +159,7 @@ PlayerSettings:
     iPhone: 0
     tvOS: 0
   overrideDefaultApplicationIdentifier: 1
-  AndroidBundleVersionCode: 1
+  AndroidBundleVersionCode: 2
   AndroidMinSdkVersion: 19
   AndroidTargetSdkVersion: 31
   AndroidPreferredInstallLocation: 1
@@ -242,7 +242,7 @@ PlayerSettings:
   useCustomBaseGradleTemplate: 0
   useCustomGradlePropertiesTemplate: 0
   useCustomProguardFile: 0
-  AndroidTargetArchitectures: 1
+  AndroidTargetArchitectures: 2
   AndroidSplashScreenScale: 0
   androidSplashScreen: {fileID: 0}
   AndroidKeystoreName: "{inproject}: Documents/App\u79C1\u94A5/2022-11-17/smartbow.keystore"
@@ -694,7 +694,7 @@ PlayerSettings:
   additionalCompilerArguments: {}
   platformArchitecture: {}
   scriptingBackend:
-    Android: 0
+    Android: 1
     Standalone: 0
   il2cppCompilerConfiguration:
     Standalone: 1