rename
@@ -11,16 +11,13 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<p><img src="./readme/logo.png" height="150"></p>
|
<p><img src="./readme/logo.png" height="150"></p>
|
||||||
|
|
||||||
# linker
|
# linker、link anywhere
|
||||||
|
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
[](https://gitee.com/snltty/linker/stargazers)
|
[](https://gitee.com/snltty/linker/stargazers)
|
||||||
[](https://gitee.com/snltty/linker/members)
|
[](https://gitee.com/snltty/linker/members)
|
||||||
|
|
||||||
<a href="https://jq.qq.com/?_wv=1027&k=ucoIVfz4" target="_blank">QQ 群:1121552990</a>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## 简单说明
|
## 简单说明
|
||||||
@@ -28,6 +25,7 @@
|
|||||||
2. SSL加密
|
2. SSL加密
|
||||||
3. 使用了一些第三方库 **MemoryPack** 、**tun2socks** 、 **msquic**
|
3. 使用了一些第三方库 **MemoryPack** 、**tun2socks** 、 **msquic**
|
||||||
4. 使用了winform、aardio 做窗体
|
4. 使用了winform、aardio 做窗体
|
||||||
|
5. <a href="https://jq.qq.com/?_wv=1027&k=ucoIVfz4" target="_blank">加入 QQ 群:1121552990</a>
|
||||||
|
|
||||||
## 主要功能
|
## 主要功能
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 28 KiB |
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<project ver="10" name="linker.tray.win" libEmbed="true" icon="..\linker\favicon.ico" ui="win" output="linker.tray.win.exe" CompanyName="snltty" FileDescription="linker.tray.win" LegalCopyright="Copyright (C) snltty 2024" ProductName="linker.tray.win" InternalName="linker.install.win" FileVersion="0.0.0.28" ProductVersion="0.0.0.28" publishDir="/dist/" dstrip="false" local="false" ignored="false">
|
<project ver="10" name="linker.tray.win" libEmbed="true" icon="..\linker\favicon.ico" ui="win" output="linker.tray.win.exe" CompanyName="snltty" FileDescription="linker.tray.win" LegalCopyright="Copyright (C) snltty 2024" ProductName="linker.tray.win" InternalName="linker.install.win" FileVersion="0.0.0.31" ProductVersion="0.0.0.31" publishDir="/dist/" dstrip="false" local="false" ignored="false">
|
||||||
<file name="main.aardio" path="main.aardio" comment="main.aardio"/>
|
<file name="main.aardio" path="main.aardio" comment="main.aardio"/>
|
||||||
<folder name="资源文件" path="res" embed="true" local="false" ignored="false">
|
<folder name="资源文件" path="res" embed="true" local="false" ignored="false">
|
||||||
<file name="favicon.ico" path="res\favicon.ico" comment="res\favicon.ico"/>
|
<file name="favicon.ico" path="res\favicon.ico" comment="res\favicon.ico"/>
|
||||||
|
BIN
linker.tray.win/dist/linker.tray.win.exe
vendored
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 28 KiB |
BIN
linker.web/public/favicon1.ico
Normal file
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 40 KiB |
BIN
linker.web/public/logo1.png
Normal file
After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 40 KiB |
@@ -90,6 +90,7 @@ export default {
|
|||||||
getSignInfo().then((res)=>{
|
getSignInfo().then((res)=>{
|
||||||
globalData.value.signin.Connected = res.Connected;
|
globalData.value.signin.Connected = res.Connected;
|
||||||
globalData.value.signin.Connecting = res.Connecting;
|
globalData.value.signin.Connecting = res.Connecting;
|
||||||
|
globalData.value.signin.Version = res.Version;
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
_getSignInfoInfo();
|
_getSignInfoInfo();
|
||||||
},1000);
|
},1000);
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="status-server-wrap" :class="{ connected: state.connected }">
|
<div class="status-server-wrap" :class="{ connected: state.connected }">
|
||||||
<a href="javascript:;" @click="handleConfig">
|
<a href="javascript:;" @click="handleConfig">
|
||||||
<template v-if="state.connected">已连接信标服务器</template>
|
<template v-if="state.connected">已连接信标服务器{{state.version}}</template>
|
||||||
<template v-else>请连接信标服务器</template>
|
<template v-else>请连接信标服务器</template>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,6 +39,7 @@ export default {
|
|||||||
loading: false,
|
loading: false,
|
||||||
connected: computed(() => globalData.value.signin.Connected),
|
connected: computed(() => globalData.value.signin.Connected),
|
||||||
connecting: computed(() => globalData.value.signin.Connecting),
|
connecting: computed(() => globalData.value.signin.Connecting),
|
||||||
|
version: computed(() => globalData.value.signin.Version),
|
||||||
server: computed(() => globalData.value.config.Client.Server),
|
server: computed(() => globalData.value.config.Client.Server),
|
||||||
serverLength: computed(() => (globalData.value.config.Running.Client.Servers || []).length),
|
serverLength: computed(() => (globalData.value.config.Running.Client.Servers || []).length),
|
||||||
form: {
|
form: {
|
||||||
|
@@ -11,7 +11,7 @@ export const provideGlobalData = () => {
|
|||||||
height: 0,
|
height: 0,
|
||||||
config: { Common: {}, Client: {}, Running: {} },
|
config: { Common: {}, Client: {}, Running: {} },
|
||||||
configed: false,
|
configed: false,
|
||||||
signin: { Connected: false, Connecting: false },
|
signin: { Connected: false, Connecting: false, Version: 'v1.0.0.0' },
|
||||||
groupid: ''
|
groupid: ''
|
||||||
});
|
});
|
||||||
subWebsocketState((state) => {
|
subWebsocketState((state) => {
|
||||||
|
@@ -19,6 +19,8 @@ namespace linker.client
|
|||||||
public bool Connecting => connecting;
|
public bool Connecting => connecting;
|
||||||
public bool Connected => Connection != null && Connection.Connected;
|
public bool Connected => Connection != null && Connection.Connected;
|
||||||
|
|
||||||
|
public string Version { get; set; }
|
||||||
|
|
||||||
private int networdkEnabledTimes = 0;
|
private int networdkEnabledTimes = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 上线事件
|
/// 上线事件
|
||||||
|
@@ -94,6 +94,8 @@ namespace linker.client
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await GetServerVersion();
|
||||||
|
|
||||||
GCHelper.FlushMemory();
|
GCHelper.FlushMemory();
|
||||||
clientSignInState.PushNetworkEnabled();
|
clientSignInState.PushNetworkEnabled();
|
||||||
|
|
||||||
@@ -225,5 +227,26 @@ namespace linker.client
|
|||||||
clientSignInState.Connection?.Disponse(6);
|
clientSignInState.Connection?.Disponse(6);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取服务器版本
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task GetServerVersion()
|
||||||
|
{
|
||||||
|
MessageResponeInfo resp = await messengerSender.SendReply(new MessageRequestWrap
|
||||||
|
{
|
||||||
|
Connection = clientSignInState.Connection,
|
||||||
|
MessengerId = (ushort)SignInMessengerIds.Version,
|
||||||
|
});
|
||||||
|
if (resp.Code == MessageResponeCodes.OK)
|
||||||
|
{
|
||||||
|
clientSignInState.Version = MemoryPackSerializer.Deserialize<string>(resp.Data.Span);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
clientSignInState.Version = "v1.0.0.0";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -126,7 +126,7 @@ namespace linker.config
|
|||||||
public ConfigCommonInfo Common { get; set; } = new ConfigCommonInfo();
|
public ConfigCommonInfo Common { get; set; } = new ConfigCommonInfo();
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public string Version { get; set; } = "1.0.0.1";
|
public string Version { get; set; } = "v1.1.0.0";
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public bool Elevated { get; set; }
|
public bool Elevated { get; set; }
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 28 KiB |
@@ -127,6 +127,13 @@ namespace linker.plugins.signin.messenger
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[MessengerId((ushort)SignInMessengerIds.Version)]
|
||||||
|
public void Version(IConnection connection)
|
||||||
|
{
|
||||||
|
connection.Write(MemoryPackSerializer.Serialize(config.Data.Version));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[MemoryPackable]
|
[MemoryPackable]
|
||||||
|
@@ -12,6 +12,8 @@
|
|||||||
Servers = 5,
|
Servers = 5,
|
||||||
ServersForward = 6,
|
ServersForward = 6,
|
||||||
|
|
||||||
|
Version = 7,
|
||||||
|
|
||||||
None = 99
|
None = 99
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@ call npm run build
|
|||||||
cd ../
|
cd ../
|
||||||
|
|
||||||
for %%r in (win-x64,win-arm64) do (
|
for %%r in (win-x64,win-arm64) do (
|
||||||
dotnet publish ./linker.service -c release -f net8.0 -o public/extends/%%r/ -r %%r -p:PublishTrimmed=true -p:TrimMode=partial --self-contained true -p:TieredPGO=true -p:DebugType=none -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true
|
dotnet publish ./linker.service -c release -f net8.0 -o public/extends/%%r/linker-%%r/ -r %%r -p:PublishTrimmed=true -p:TrimMode=partial --self-contained true -p:TieredPGO=true -p:DebugType=none -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true
|
||||||
echo F|xcopy "linker.tray.win\\dist\\*" "public\\extends\\%%r\\linker-%%r\\*" /s /f /h /y
|
echo F|xcopy "linker.tray.win\\dist\\*" "public\\extends\\%%r\\linker-%%r\\*" /s /f /h /y
|
||||||
echo F|xcopy "linker\\msquic.dll" "public\\extends\\%%r\\linker-%%r\\msquic.dll" /s /f /h /y
|
echo F|xcopy "linker\\msquic.dll" "public\\extends\\%%r\\linker-%%r\\msquic.dll" /s /f /h /y
|
||||||
echo F|xcopy "linker\\msquic-openssl.dll" "public\\extends\\%%r\\linker-%%r\\msquic-openssl.dll" /s /f /h /y
|
echo F|xcopy "linker\\msquic-openssl.dll" "public\\extends\\%%r\\linker-%%r\\msquic-openssl.dll" /s /f /h /y
|
||||||
|
BIN
readme/logo.png
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 40 KiB |