This commit is contained in:
Ryzerth
2025-11-04 19:18:53 -05:00
parent f494612908
commit 6605a2d933
4 changed files with 115 additions and 43 deletions

View File

@@ -4,37 +4,69 @@ let stream = null;
let conn = null;
// GUI Objects
let connForm = document.querySelector('#connForm');
let dispNameTb = document.querySelector('#dispName');
let connBtn = document.querySelector('#connect');
let pinValForm = document.querySelector('#pinValForm');
let dispPINTb = document.querySelector('#dispPIN');
let validateBtn = document.querySelector('#validate');
let streamForm = document.querySelector('#streamForm');
let locPlayback = document.querySelector('#localPlayback');
let connForm = document.getElementById('connForm');
let dispNameTb = document.getElementById('dispName');
let connBtn = document.getElementById('connect');
let pinValForm = document.getElementById('pinValForm');
let dispPINTb = document.getElementById('dispPIN');
let validateBtn = document.getElementById('validate');
let streamForm = document.getElementById('streamForm');
let locPlayback = document.getElementById('localPlayback');
// Connect to the server using WebSockets
console.log('Connecting to websocket...')
sock = new WebSocket(`ws://${location.host}/sig`);
sock.addEventListener('open', async (event) => {
console.log('Connected to websocket')
// User API class
class WisCastUserAPI {
// Socket to the API endpoint
#sock;
// // DEBUGGING ONLY
// await sock.send(JSON.stringify({
// type: 'init',
// pin: dispPINTb.value
// }))
// Endpoint URL
#endpoint;
await sock.send(JSON.stringify({
type: 'init',
clientType: 'user'
}));
});
constructor(endpoint) {
// Save the endpoint
this.endpoint = endpoint;
}
sock.addEventListener('message', (event) => {
console.log(event.data)
});
// Connect to the API
async connect() {
// Connect to the WebSocket endpoint
console.log('Connecting to the API...')
this.#sock = new WebSocket(endpoint);
sock.addEventListener('close', (event) => {
console.log('Disconnected from websocket')
});
// Handle connection
sock.addEventListener('open', this.#connectHandler);
// Handle messages
sock.addEventListener('message', this.#messageHandler);
// Handle disconnection
sock.addEventListener('close', this.#disconnectHandler);
}
// Connect to a display using its ID and OTP
async connectDisplay(dispID, OTP) {
}
#connectHandler(event) {
console.log('Connected!')
}
#messageHandler(event) {
console.log(event.data)
}
#disconnectHandler(event) {
console.log('Disconnected :/')
}
}
async function main() {
// Create the API connection
const api = new WisCastUserAPI(`ws://${location.host}/sig`);
// Connect to the server
await api.connect();
}
// Run the main function
main();