Compare commits

..

3 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
bc637912d6 docs: align heartbeat defaults note
Co-authored-by: fatedier <7346661+fatedier@users.noreply.github.com>
2026-02-03 03:23:40 +00:00
copilot-swe-agent[bot]
1bbbbaac85 docs: clarify heartbeat vs tcpMux keepalive
Co-authored-by: fatedier <7346661+fatedier@users.noreply.github.com>
2026-02-03 03:21:26 +00:00
copilot-swe-agent[bot]
d823f7e98b Initial plan 2026-02-03 02:53:10 +00:00
9 changed files with 33 additions and 57 deletions

View File

@ -23,10 +23,10 @@ jobs:
with:
node-version: '22'
- name: Build web assets (frps)
run: make build
run: make install build
working-directory: web/frps
- name: Build web assets (frpc)
run: make build
run: make install build
working-directory: web/frpc
- name: golangci-lint
uses: golangci/golangci-lint-action@v8

View File

@ -20,10 +20,10 @@ jobs:
with:
node-version: '22'
- name: Build web assets (frps)
run: make build
run: make install build
working-directory: web/frps
- name: Build web assets (frpc)
run: make build
run: make install build
working-directory: web/frpc
- name: Make All
run: |

View File

@ -133,8 +133,10 @@ transport.tls.enable = true
# transport.tls.disableCustomTLSFirstByte = true
# Heartbeat configure, it's not recommended to modify the default value.
# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value
# to disable it.
# If tcpMux is enabled (default), heartbeat is disabled and tcp mux keepalive
# interval controls the liveness detection instead.
# When tcpMux is disabled, the defaults are heartbeatInterval = 30 and heartbeatTimeout = 90.
# Set negative value to disable it.
# transport.heartbeatInterval = 30
# transport.heartbeatTimeout = 90

View File

@ -22,7 +22,9 @@ kcpBindPort = 7000
# transport.quic.maxIdleTimeout = 30
# transport.quic.maxIncomingStreams = 100000
# Heartbeat configure, it's not recommended to modify the default value
# Heartbeat configure, it's not recommended to modify the default value.
# If tcpMux is enabled (default), heartbeat is disabled and tcp mux keepalive
# interval controls the liveness detection instead.
# The default value of heartbeatTimeout is 90. Set negative value to disable it.
# transport.heartbeatTimeout = 90

View File

@ -133,6 +133,8 @@ type ClientTransportConfig struct {
// HeartBeatTimeout specifies the maximum allowed heartbeat response delay
// before the connection is terminated, in seconds. It is not recommended
// to change this value. By default, this value is 90. Set negative value to disable it.
// Note: When TCPMux is enabled (default), heartbeat checks are disabled and
// the TCP mux keepalive interval controls liveness instead.
HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"`
// TLS specifies TLS settings for the connection to the server.
TLS TLSClientConfig `json:"tls,omitempty"`

View File

@ -172,6 +172,8 @@ type ServerTransportConfig struct {
// HeartBeatTimeout specifies the maximum time to wait for a heartbeat
// before terminating the connection. It is not recommended to change this
// value. By default, this value is 90. Set negative value to disable it.
// Note: When TCPMux is enabled (default), heartbeat checks are disabled and
// the TCP mux keepalive interval controls liveness instead.
HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"`
// QUIC options.
QUIC QUICOptions `json:"quic,omitempty"`

View File

@ -3,7 +3,7 @@
install:
@npm install
build: install
build:
@npm run build
dev:

View File

@ -1611,9 +1611,7 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
@ -2054,9 +2052,7 @@
"license": "ISC"
},
"node_modules/brace-expansion": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"version": "1.1.11",
"dev": true,
"license": "MIT",
"dependencies": {
@ -2065,13 +2061,11 @@
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"version": "3.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
"fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
@ -2262,9 +2256,7 @@
}
},
"node_modules/cross-spawn": {
"version": "6.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",
"integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",
"version": "6.0.5",
"dev": true,
"license": "MIT",
"dependencies": {
@ -2279,9 +2271,7 @@
}
},
"node_modules/cross-spawn/node_modules/semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"version": "5.7.1",
"dev": true,
"license": "ISC",
"bin": {
@ -2969,9 +2959,7 @@
"license": "MIT"
},
"node_modules/eslint/node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"version": "7.0.3",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3194,9 +3182,7 @@
}
},
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"version": "7.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3739,8 +3725,6 @@
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"license": "MIT",
"engines": {
@ -3866,9 +3850,7 @@
}
},
"node_modules/js-yaml": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"version": "4.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3967,15 +3949,11 @@
}
},
"node_modules/lodash": {
"version": "4.17.23",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
"version": "4.17.21",
"license": "MIT"
},
"node_modules/lodash-es": {
"version": "4.17.23",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz",
"integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
"version": "4.17.21",
"license": "MIT"
},
"node_modules/lodash-unified": {
@ -4024,13 +4002,11 @@
}
},
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"version": "4.0.5",
"dev": true,
"license": "MIT",
"dependencies": {
"braces": "^3.0.3",
"braces": "^3.0.2",
"picomatch": "^2.3.1"
},
"engines": {
@ -4165,9 +4141,7 @@
}
},
"node_modules/normalize-package-data/node_modules/semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"version": "5.7.1",
"dev": true,
"license": "ISC",
"bin": {
@ -5144,8 +5118,6 @@
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -5370,9 +5342,7 @@
}
},
"node_modules/unplugin-auto-import/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
@ -5534,9 +5504,7 @@
}
},
"node_modules/unplugin-vue-components/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.1",
"dev": true,
"license": "MIT",
"dependencies": {

View File

@ -3,7 +3,7 @@
install:
@npm install
build: install
build:
@npm run build
dev: