add per-ip limit

This commit is contained in:
Amateur Audio Dude
2025-07-07 22:38:20 +10:00
committed by GitHub
parent 4ece21d513
commit 2ab7dd33dd
3 changed files with 101 additions and 32 deletions
+26 -27
View File
@@ -1,30 +1,29 @@
var url = new URL('text', window.location.href);
url.protocol = url.protocol.replace('http', 'ws');
var socketAddress = url.href;
var socket = new WebSocket(socketAddress);
if (!window.socket || window.socket.readyState === WebSocket.CLOSED || window.socket.readyState === WebSocket.CLOSING) {
var url = new URL('text', window.location.href);
url.protocol = url.protocol.replace('http', 'ws');
var socketAddress = url.href;
var socket = new WebSocket(socketAddress);
const socketPromise = new Promise((resolve, reject) => {
// Event listener for when the WebSocket connection is open
socket.addEventListener('open', () => {
console.log('WebSocket connection open');
resolve(socket); // Resolve the promise with the WebSocket instance
window.socket = socket;
const socketPromise = new Promise((resolve, reject) => {
socket.addEventListener('open', () => {
console.log('WebSocket connection open');
resolve(socket);
});
socket.addEventListener('error', (error) => {
console.error('WebSocket error', error);
reject(error);
});
socket.addEventListener('close', () => {
setTimeout(() => {
console.warn('WebSocket connection closed');
}, 100);
reject(new Error('WebSocket connection closed'));
});
});
// Event listener for WebSocket errors
socket.addEventListener('error', (error) => {
console.error('WebSocket error', error);
reject(error); // Reject the promise on error
});
// Event listener for WebSocket connection closure
socket.addEventListener('close', () => {
console.warn('WebSocket connection closed');
reject(new Error('WebSocket connection closed')); // Reject with closure warning
});
});
// Assign the socketPromise to window.socketPromise for global access
window.socketPromise = socketPromise;
// Assign the socket instance to window.socket for global access
window.socket = socket;
window.socketPromise = socketPromise;
}