Develop a script that establishes a WebSocket (wss) connection only once and ensures that a 'ping' message is sent every 30 seconds. If the WebSocket connection is closed for any reason, the script should automatically reopen it. Additionally, implement a
.
// First we should use the geSoc() method to establish the initial Websocket (wss) connection.
let ws = new WebSocket("wss://mywebsocket.com/");
// Add an event listener to the connection so that when it is opened, the 'ping' message is sent every 30 seconds.
ws.onopen = function() {
setInterval(function() {
ws.send('ping');
}, 30000);
};
// Add an event listener to the connection so that when it is closed, the connection is automatically re-established.
ws.onclose = function() {
//re-establish connection
ws = new WebSocket("wss://mywebsocket.com/");
};
// Lastly, implement a 'device publish' functionality that generates and sends 30 transactions per second (tps) consistently for a duration of 2 hours as part of a test scenario.
let transactionsPerSecond = 30;
let duration = 7200000; // 2 hours in milliseconds
let interval = 1000/transactionsPerSecond; // calculating the interval
setInterval(function() {
// Generate and publish the transaction...
ws.send(transaction);
}, interval);
// Set a timeout to stop after the given 2 hour duration has passed.
setTimeout(function() {
clearInterval(interval);
}, duration);