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') {

Reply via email to