var pc_list = {};
var channel_list = null;

document.addEventListener('DOMContentLoaded', async function() {
    console.log('DOM fully loaded and parsed');
    // 发送请求获取额外数据
    try {
            let response = await fetch('/api/channel/list');
            if (!response.ok) {
                throw new Error('Network response was not ok');
            }
            channel_list = await response.json();
            // 遍历输出每个元素的信息
            channel_list.forEach(channel => {
                if(channel.element_id){   //""空为false,非空为true
                   console.log(`Area Name: ${channel.area_name}`);
                   console.log(`ID: ${channel.ID}`);
                   console.log(`Channel Name: ${channel.channel_name}`);
                   console.log(`URL: ${channel.url}`);
                   console.log(`Type: ${channel.type}`);
                   console.log(`Status: ${channel.status}`);
                   console.log(`Element ID: ${channel.element_id}`);
                   connectToStream(channel.element_id,channel.ID,channel.area_name,channel.channel_name)
                }
            });
        } catch (error) {
            console.error('Failed to fetch data:', error);
        }
      });

function connectToStream(element_id,channel_id,area_name,channel_name) {
            const imgElement = document.getElementById(element_id);
            imgElement.alt = `Stream ${area_name}--${channel_name}`;
            const streamUrl = `ws://${window.location.host}/api/ws/video_feed/${channel_id}`;
            console.log(streamUrl);
            function connect() {
                const socket = new WebSocket(streamUrl);

                socket.onmessage = function(event) {
                    //const blob = new Blob([event.data], { type: 'image/jpeg' });
                    //imgElement.src = URL.createObjectURL(blob);
                    // 释放旧的对象URL
                    if (imgElement.src) {
                        URL.revokeObjectURL(imgElement.src);
                    }
                    imgElement.src = URL.createObjectURL(event.data);
                };

                socket.onclose = function() {
                    setTimeout(connect, 1000);  // 尝试在1秒后重新连接
                };

                socket.onerror = function() {
                    console.log(`WebSocket错误,尝试重新连接... Channel ID: ${channel_id}`);
                    socket.close();
                };
            }

            connect();
        }