From c2760e0bb084f752f3e37442dfd77631aa72dd8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=9A=E7=84=B6?= Date: Sun, 28 Jan 2018 12:43:42 +0800 Subject: [PATCH] include fast-json to enhance the stringify of ws message --- lib/recorder.js | 20 +++++++++++++++++++- lib/requestHandler.js | 2 +- package.json | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/recorder.js b/lib/recorder.js index 94b2a83..1a37739 100644 --- a/lib/recorder.js +++ b/lib/recorder.js @@ -7,8 +7,25 @@ const Datastore = require('nedb'), logUtil = require('./log'), events = require('events'), iconv = require('iconv-lite'), + fastJson = require('fast-json-stringify'), proxyUtil = require('./util'); +const wsMessageStingify = fastJson({ + title: 'ws message stringify', + type: 'object', + properties: { + time: { + type: 'integer' + }, + message: { + type: 'string' + }, + isToServer: { + type: 'boolean' + } + } +}); + const BODY_FILE_PRFIX = 'res_body_'; const WS_MESSAGE_FILE_PRFIX = 'ws_message_'; const CACHE_DIR_PREFIX = 'cache_r'; @@ -113,7 +130,8 @@ class Recorder extends events.EventEmitter { if (id < 0) return; try { const recordWsMessageFile = path.join(cachePath, WS_MESSAGE_FILE_PRFIX + id); - fs.appendFile(recordWsMessageFile, JSON.stringify(message) + ',', () => {}); + + fs.appendFile(recordWsMessageFile, wsMessageStingify(message) + ',', () => {}); } catch (e) { console.error(e); logUtil.error(e.message + e.stack); diff --git a/lib/requestHandler.js b/lib/requestHandler.js index 2733d40..9757fd6 100644 --- a/lib/requestHandler.js +++ b/lib/requestHandler.js @@ -744,7 +744,7 @@ function getWsHandler(userRule, recorder, wsClient) { /** * consruct a message Record from message event * @param @required {event} messageEvent the event from websockt.onmessage - * @param @required {boolean} isIn whether the message is to or from server + * @param @required {boolean} isToServer whether the message is to or from server * */ const recordMessage = (messageEvent, isToServer) => { diff --git a/package.json b/package.json index 0e089ca..3eb4250 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "compression": "^1.4.4", "es6-promise": "^3.3.1", "express": "^4.8.5", + "fast-json-stringify": "^0.17.0", "iconv-lite": "^0.4.6", "inquirer": "^3.0.1", "ip": "^0.3.2",