This is an automated email from the ASF dual-hosted git repository.
cnryb pushed a commit to branch debug-frontend
in repository https://gitbox.apache.org/repos/asf/incubator-weex-cli.git
The following commit(s) were added to refs/heads/debug-frontend by this push:
new ca4d9e4 fix(debug): Websocket closes every ten minutes on Mac
ca4d9e4 is described below
commit ca4d9e4dc3eeca340c4764d79cd65dc91379d21f
Author: 任跃兵 <[email protected]>
AuthorDate: Thu Dec 26 15:52:36 2019 +0800
fix(debug): Websocket closes every ten minutes on Mac
---
packages/@weex/plugins/debug/src/config/index.js | 4 +++-
packages/@weex/plugins/debug/src/link/handlers/debugger.js | 10 ++++++++++
packages/@weex/plugins/debug/src/link/handlers/entry.js | 12 ++++++++++++
packages/@weex/plugins/debug/src/link/handlers/inspector.js | 12 ++++++++++++
packages/@weex/plugins/debug/src/link/handlers/native.js | 11 +++++++++++
5 files changed, 48 insertions(+), 1 deletion(-)
diff --git a/packages/@weex/plugins/debug/src/config/index.js
b/packages/@weex/plugins/debug/src/config/index.js
index 1fba3f2..53427b7 100644
--- a/packages/@weex/plugins/debug/src/config/index.js
+++ b/packages/@weex/plugins/debug/src/config/index.js
@@ -1,5 +1,7 @@
module.exports = {
BUNDLE_DIRECTORY: 'weex',
REMOTE_DEBUG_PORT: '9222',
- ENABLE_HEADLESS: true
+ ENABLE_HEADLESS: true,
+ // 心跳包间隔时间
+ heartbeatTime: 1000 * 60
}
diff --git a/packages/@weex/plugins/debug/src/link/handlers/debugger.js
b/packages/@weex/plugins/debug/src/link/handlers/debugger.js
index 7ef5ae0..65bc2dd 100644
--- a/packages/@weex/plugins/debug/src/link/handlers/debugger.js
+++ b/packages/@weex/plugins/debug/src/link/handlers/debugger.js
@@ -6,8 +6,18 @@ const config = require('../../config')
const MemoryFile = require('../../MemoryFile')
const uuidv1 = require('uuid/v1')
+let heartbeatTimer
+const sendHeartbeat = () => {
+ heartbeatTimer && clearTimeout(heartbeatTimer)
+ heartbeatTimer = setTimeout(() => {
+ debuggerRouter.pushMessage('page.entry', 'ping')
+ sendHeartbeat()
+ }, config.heartbeatTime)
+}
+
debuggerRouter
.registerHandler((message, next) => {
+ sendHeartbeat()
const payload = message.payload
const method = payload.method
const domain = method.split('.')[0]
diff --git a/packages/@weex/plugins/debug/src/link/handlers/entry.js
b/packages/@weex/plugins/debug/src/link/handlers/entry.js
index edd3300..9d172c6 100644
--- a/packages/@weex/plugins/debug/src/link/handlers/entry.js
+++ b/packages/@weex/plugins/debug/src/link/handlers/entry.js
@@ -5,8 +5,20 @@ const { util } = require('../../util')
const debuggerRouter = Router.get('debugger')
const opn = require('opn')
+
+
+let heartbeatTimer
+const sendHeartbeat = () => {
+ heartbeatTimer && clearTimeout(heartbeatTimer)
+ heartbeatTimer = setTimeout(() => {
+ debuggerRouter.pushMessage('page.entry', 'ping')
+ sendHeartbeat()
+ }, config.heartbeatTime)
+}
+
debuggerRouter
.registerHandler(message => {
+ sendHeartbeat()
let method = message.payload.method
if (method === 'WxDebug.applyChannelId') {
const channelId = debuggerRouter.newChannel(config.CHANNELID)
diff --git a/packages/@weex/plugins/debug/src/link/handlers/inspector.js
b/packages/@weex/plugins/debug/src/link/handlers/inspector.js
index 7f4910c..4660554 100644
--- a/packages/@weex/plugins/debug/src/link/handlers/inspector.js
+++ b/packages/@weex/plugins/debug/src/link/handlers/inspector.js
@@ -1,6 +1,8 @@
const mlink = require('../index')
const debuggerRouter = mlink.Router.get('debugger')
const DeviceManager = require('../managers/device_manager')
+const config = require('../../config')
+
const redirectMessage =
/^(Page.(enable|disable|reload)|Debugger|Target|Worker|Runtime\.runIfWaitingForDebugger)/
const ignoredMessage = /^(ServiceWorker)/
const chromeDevtoolDiabledProtocol = [
@@ -19,8 +21,18 @@ const chromeDevtoolDiabledProtocol = [
// 'Page.setAdBlockingEnabled'
]
+let heartbeatTimer
+const sendHeartbeat = () => {
+ heartbeatTimer && clearTimeout(heartbeatTimer)
+ heartbeatTimer = setTimeout(() => {
+ debuggerRouter.pushMessage('page.entry', 'ping')
+ sendHeartbeat()
+ }, config.heartbeatTime)
+}
+
debuggerRouter
.registerHandler(function (message) {
+ sendHeartbeat()
const device = DeviceManager.getDevice(message.channelId)
if (device) {
if (redirectMessage.test(message.payload.method)) {
diff --git a/packages/@weex/plugins/debug/src/link/handlers/native.js
b/packages/@weex/plugins/debug/src/link/handlers/native.js
index d0038e1..b06875d 100644
--- a/packages/@weex/plugins/debug/src/link/handlers/native.js
+++ b/packages/@weex/plugins/debug/src/link/handlers/native.js
@@ -16,8 +16,18 @@ config.env = {}
config.wmlEnv = {}
+let heartbeatTimer
+const sendHeartbeat = () => {
+ heartbeatTimer && clearTimeout(heartbeatTimer)
+ heartbeatTimer = setTimeout(() => {
+ debuggerRouter.pushMessage('page.entry', 'ping')
+ sendHeartbeat()
+ }, config.heartbeatTime)
+}
+
debuggerRouter
.registerHandler(function (message) {
+ sendHeartbeat()
const payload = message.payload
const method = payload.method
const device = DeviceManager.getDevice(message.channelId)
@@ -314,6 +324,7 @@ debuggerRouter
debuggerRouter
.registerHandler(function (message) {
+ sendHeartbeat()
const payload = message.payload
const device = DeviceManager.getDevice(message.channelId)
if (payload.method === 'Page.screencastFrame') {