diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 211ed6d61ac..86ee6197a7c 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 9.3.1-beta22 + 9.3.1-beta23 diff --git a/src/BootstrapBlazor/Components/ConnectionHub/ConnectionHub.cs b/src/BootstrapBlazor/Components/ConnectionHub/ConnectionHub.cs index 57114bf3447..e6961bc3989 100644 --- a/src/BootstrapBlazor/Components/ConnectionHub/ConnectionHub.cs +++ b/src/BootstrapBlazor/Components/ConnectionHub/ConnectionHub.cs @@ -51,7 +51,8 @@ protected override async Task InvokeInitAsync() Method = nameof(Callback), ConnectionId = Guid.NewGuid(), Interval = options.BeatInterval.TotalMilliseconds, - Url = "ip.axd" + Url = "ip.axd", + BootstrapBlazorOptions.Value.WebClientOptions.EnableIpLocator }); } } diff --git a/src/BootstrapBlazor/Services/WebClientService.cs b/src/BootstrapBlazor/Services/WebClientService.cs index d545a21967b..5512100f1e9 100644 --- a/src/BootstrapBlazor/Services/WebClientService.cs +++ b/src/BootstrapBlazor/Services/WebClientService.cs @@ -44,7 +44,10 @@ public async Task GetClientInfo() { _jsModule ??= await runtime.LoadModuleByName("client"); _interop ??= DotNetObjectReference.Create(this); - await _jsModule.InvokeVoidAsync("ping", "ip.axd", _interop, nameof(SetData)); + await _jsModule.InvokeVoidAsync("ping", "ip.axd", _interop, nameof(SetData), new + { + options.CurrentValue.WebClientOptions.EnableIpLocator + }); // 等待 SetData 方法执行完毕 await _taskCompletionSource.Task.WaitAsync(TimeSpan.FromSeconds(3)); diff --git a/src/BootstrapBlazor/wwwroot/modules/client.js b/src/BootstrapBlazor/wwwroot/modules/client.js index a608d7b9090..73bdab42dde 100644 --- a/src/BootstrapBlazor/wwwroot/modules/client.js +++ b/src/BootstrapBlazor/wwwroot/modules/client.js @@ -1,12 +1,12 @@ import "./browser.js" import { execute } from "./ajax.js" -export async function ping(url, invoke, method) { - const data = await getClientInfo(url); +export async function ping(url, invoke, method, options) { + const data = await getClientInfo(url, options); await invoke.invokeMethodAsync(method, data) } -export async function getClientInfo(url) { +export async function getClientInfo(url, options) { const info = browser() let data = { browser: info.browser + ' ' + info.version, @@ -17,12 +17,14 @@ export async function getClientInfo(url) { os: info.system + ' ' + info.systemVersion } - const result = await execute({ - method: 'GET', - url - }); - if (result) { - data.ip = result.Ip; + if (options.enableIpLocator === true) { + const result = await execute({ + method: 'GET', + url + }); + if (result) { + data.ip = result.Ip; + } } data.id = localStorage.getItem('bb_hub_connection_id') ?? result.Id; return data; diff --git a/src/BootstrapBlazor/wwwroot/modules/hub.js b/src/BootstrapBlazor/wwwroot/modules/hub.js index ac0923bbd8c..95602948d2b 100644 --- a/src/BootstrapBlazor/wwwroot/modules/hub.js +++ b/src/BootstrapBlazor/wwwroot/modules/hub.js @@ -3,7 +3,7 @@ import Data from "./data.js" import EventHandler from "./event-handler.js"; export async function init(id, options) { - const { invoke, method, interval = 3000, url, connectionId } = options; + const { invoke, method, interval = 3000, url, connectionId, enableIpLocator } = options; const elKey = 'bb_hub_el_id'; if (localStorage.getItem(elKey) === null) { localStorage.setItem(elKey, id); @@ -34,7 +34,7 @@ export async function init(id, options) { } }); - const info = await getClientInfo(url); + const info = await getClientInfo(url, { enableIpLocator: enableIpLocator }); info.id = clientId; const callback = async () => {