diff --git a/package.json b/package.json index 8ee0725..0de4db1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "playpeerjs", - "version": "1.2.5", + "version": "1.2.6", "description": "WebRTC-based wrapper for creating robust peer-2-peer multiplayer systems with ease.", "type": "module", "main": "dist/playpeer.js", diff --git a/src/example.html b/src/example.html index d2b8368..f39ac24 100644 --- a/src/example.html +++ b/src/example.html @@ -62,8 +62,8 @@ ] } }); - - peer.onEvent('storageUpdate', (storage) => { + peer.onEvent('status', status => console.log('Status:', status)); + peer.onEvent('storageUpdated', (storage) => { const messages = document.getElementById('messages'); messages.innerHTML = storage.messages?.map(msg => `
${msg.sender}: ${msg.text}
` @@ -71,7 +71,6 @@ messages.scrollTop = messages.scrollHeight; }); - peer.onEvent('status', status => console.log('Status:', status)); await peer.init(); } @@ -81,7 +80,7 @@ document.getElementById("host-container").style.opacity = "0.5"; if (!peer) await initPeer(peerId); - peer.createRoom({ messages: [] }); + await peer.createRoom({ messages: [] }); } async function join() { @@ -102,16 +101,15 @@ function sendMessage() { const input = document.getElementById('chatInput'); const text = input.value.trim(); + input.value = ''; if (!text) return; - const currentStorage = peer.getStorage; const newMessage = { sender: peer.id, text: text }; peer.updateStorageArray('messages', 'add', newMessage); - input.value = ''; } // Make functions globally available diff --git a/src/index.js b/src/index.js index eb1759b..275b91d 100644 --- a/src/index.js +++ b/src/index.js @@ -92,7 +92,7 @@ export default class PlayPeer { */ async init() { return new Promise((resolve, reject) => { - this.destroy(); // If peer already exists, destroy + if (this.#peer) return console.error(ERROR_PREFIX + "Instance already initialized!"); if (!this.#id) console.warn(ERROR_PREFIX + "No id provided!"); if (!this.#options) console.warn(ERROR_PREFIX + "No config provided! Necessary stun and turn servers missing."); this.#triggerEvent("status", "Initializing instance..."); @@ -147,19 +147,14 @@ export default class PlayPeer { }); this.#peer.on('error', (error) => { - if (error.type === "network") { - console.error(ERROR_PREFIX + "Fatal network error:", error); - this.#triggerEvent("error", "Fatal network error: " + error); - this.destroy(); - } else { - console.error(ERROR_PREFIX + "Peer error:", error); - this.#triggerEvent("error", "Peer error: " + error); - } + console.error(ERROR_PREFIX + `Error of type '${error?.type}':`, error); + this.#triggerEvent("error", `Error of type '${error?.type}': ` + error); }); this.#peer.on('close', () => { this.#triggerEvent("status", "Peer permanently closed."); - console.warn(WARNING_PREFIX + "Connection permanently closed."); + this.#triggerEvent("error", "Peer permanently closed. Please ensure your client is WebRTC-compatible."); + console.warn(WARNING_PREFIX + "Peer permanently closed."); this.destroy(); }); }