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();
});
}