38 lines
1 KiB
JavaScript
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();
|