stream-tools/twitch/public/chat.js

38 lines
1 KiB
JavaScript

const chatContainer = document.getElementById("chat");
async function sync() {
let eventSource;
try {
eventSource = new EventSource("/twitch/sse/chat");
} catch (err) {
console.error("Failed to connect to event source", err);
return;
}
eventSource.addEventListener("error", () => {
eventSource.close();
console.error("Connection lost, or an error has occurred.");
console.log("Attempting to reconnect...");
setTimeout(() => {
sync();
}, 1000);
});
eventSource.addEventListener("chat", event => {
console.log(`[${chat}] ${event.data}`);
const messageEl = document.createElement("p");
messageEl.innerText = event.data;
chatContainer.appendChild(messageEl);
});
eventSource.addEventListener("open", () => {
console.log("Connected.");
});
}
function twitchEmoteURL(emoteID) {
return `https://static-cdn.jtvnw.net/emoticons/v2/${emoteID}/default/dark/1.0#e=0`
}
sync();