This project records the web page in the server.
- Record the user operation on the client, reproduce it on the server and record it.
- Record any changes to the specified web page.
- If there is the function of client recording, the computer requirements of the client can be reduced
- Record for tab pages, so refresh web pages and jump can also be recorded
- You can also record the sound of web pages, even if your server does not have a sound card.
- Perfect crash, error processing mechanism
- You can add your own code to state, and it is very convenient.
- Supports
Chrome DevTools Protocol
andVNC
debugging
docker run -dit -P --name rebirth_alo7 -v `pwd`/rebirth_alo7/logs:/etc/www/logs -v `pwd`/rebirth_alo7/video:/root/Downloads -e MATERIAL_URL="https://www.alo7.com/en/" -e START_VNC="yes" alo7docker/rebirth
After the webpage is loaded, some api will be injected for the webpage to use.
// Initialize the API (if not called within 5 minutes, the task is considered to have failed) to ensure that the web page can be opened normally.
rebirth.init();
// start record
rebirth.start();
// pause record
rebirth.pause();
// resume record
rebirth.resume();
// stop record
rebirth.stop('filename');
// record fail
rebirth.fail();
// set extra info, The final information is delivered to your custom code
rebirth.setExtraInfo({
foo: 'bar'
});
They are defined in Dockerfile
MATERIAL_URL
: Theurl
to be recorded, the default value ishttps://github.com/
START_VNC
: Whether to startVNC
, open asyes
. The default value isno
VNC_PASSWORD
:VNC
connection password, default value isrebirth
MAX_RECORD_TIME
: What is the maximum time of the current recording, in milliseconds, the default value is7200000
(two hours)
In the src/hooks
directory, create a new file: index.js
, in the following format:
module.exports = {
/**
* Triggered when recording is complete
*
* @param {Object} data - Client request body
* @return {void | string | Object | number | boolean | Function | Promise.resolve}
*/
completeRecordAfter: (data) => {
console.log(data);
return true;
},
// Triggered after recording failure
// The parameters are the same as completeRecordAfter
failAfter: () => {},
};
Thanks goes to these wonderful people:
Black-Hole 💻 🤔 |
pandan-12 🐛 |