From 69a7c1ed35f9c14428f826a6f562d423a07ea911 Mon Sep 17 00:00:00 2001 From: William Chan Date: Sun, 16 Feb 2020 02:36:01 +0800 Subject: [PATCH] luci-app-ssr-plus: optimize calc hashkey, fix #3096 (#3111) * luci-app-ssr-plus: optimize calc hashkey, fix #3096 * luci-app-ssr-plus: optimize server list socket check --- .../luasrc/view/shadowsocksr/server_list.htm | 30 +++++++++---------- .../luasrc/view/shadowsocksr/socket.htm | 2 +- .../root/usr/share/shadowsocksr/subscribe.lua | 6 +++- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm index 7318e38a8..be523e600 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm +++ b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm @@ -14,6 +14,8 @@ local dsp = require "luci.dispatcher" const dom = doms[index]; const port = ports[index]; if (!dom) res() + port.innerHTML = 'connecting...'; + XHR.get('<%=dsp.build_url("admin/services/shadowsocksr/ping")%>', { index, domain: dom.getAttribute("hint"), @@ -28,24 +30,22 @@ local dsp = require "luci.dispatcher" } dom.innerHTML = `${(result.ping ? result.ping : "--") + " ms"}` if (result.socket) { - port.innerHTML = 'ok' + port.innerHTML = 'ok'; } else { - port.innerHTML = 'fail' + port.innerHTML = 'fail'; } - res() + res(); }); }) } - (async () => { - for (let group = 0; group < Math.ceil(doms.length / 5); group++) { - await Promise.all([ - xhr(group * 5 + 0), - xhr(group * 5 + 1), - xhr(group * 5 + 2), - xhr(group * 5 + 3), - xhr(group * 5 + 4), - ]) + let task = -1; + const thread = () => { + task = task + 1 + if (doms[task]) { + xhr(task).then(thread); } - })() - //]]> - + } + for (let i = 0; i < 10; i++) { + thread() + } + \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/socket.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/socket.htm index 6cba5bc85..714fb56bf 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/socket.htm +++ b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/socket.htm @@ -1,3 +1,3 @@ <%+cbi/valueheader%> -connecting +wait <%+cbi/valuefooter%> diff --git a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 7f64aaf75..96ca3dd5f 100644 --- a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -105,7 +105,6 @@ local function processData(szType, content) -- kcp_port = 0, kcp_param = '--nocomp' } - result.hashkey = type(content) == 'string' and md5(content) or md5(jsonStringify(content)) if szType == 'ssr' then local dat = split(content, "/\\?") local hostInfo = split(dat[1], ':') @@ -226,6 +225,11 @@ local function processData(szType, content) if not result.alias then result.alias = result.server .. ':' .. result.server_port end + -- alias 不参与 hashkey 计算 + local alias = result.alias + result.alias = nil + result.hashkey = md5(jsonStringify(result)) + result.alias = alias return result end -- wget