diff --git a/Cargo.toml b/Cargo.toml
index c56b329435f41921633e9d7ee8405d14ad96a1e7..187b1ba02e1149ce717d7cfc209bc881b22be3cc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,11 +4,19 @@ version = "0.2.1"
 authors = ["scratchyone <scratchywon@gmail.com>"]
 edition = "2018"
 license = "MIT"
-categories = ["game-development", "network-programming", "wasm", "web-programming::websocket"]
+categories = [
+  "game-development",
+  "network-programming",
+  "wasm",
+  "web-programming::websocket",
+]
 description = "A WASM-only websocket library"
 repository = "https://github.com/scratchyone/wasm-sockets"
 readme = "Readme.md"
 
+[lib]
+crate-type = ["cdylib", "rlib"]
+
 [package.metadata.docs.rs]
 targets = ["wasm32-unknown-unknown"]
 
@@ -37,6 +45,4 @@ console_log = "0.2.0"
 console_error_panic_hook = "0.1.6"
 wasm-bindgen-futures = "0.4.19"
 wasm-bindgen-test = "0.3"
-web-sys = { version = "0.3.22", features = [
-  "Window",
-] }
+web-sys = { version = "0.3.22", features = ["Window"] }
diff --git a/Readme.md b/Readme.md
index eaa10c20c8a6ed2e1eee3eb217c4093fed7fc9be..ab3e6bd78d4649414b74fff7a1738d66363a16ff 100644
--- a/Readme.md
+++ b/Readme.md
@@ -19,7 +19,7 @@ fn main() -> Result<(), WebSocketError> {
     console_log::init_with_level(Level::Trace).expect("Failed to enable logging");
     info!("Creating connection");
 
-    let mut client = wasm_sockets::EventClient::new("wss://echo.websocket.org")?;
+    let mut client = wasm_sockets::EventClient::new("wss://ws.ifelse.io")?;
     client.set_on_error(Some(Box::new(|error| {
         error!("{:#?}", error);
     })));
@@ -67,7 +67,7 @@ fn main() -> Result<(), WebSocketError> {
     // Client is wrapped in an Rc<RefCell<>> so it can be used within setInterval
     // This isn't required when being used within a game engine
     let client = Rc::new(RefCell::new(wasm_sockets::PollingClient::new(
-        "wss://echo.websocket.org",
+        "wss://ws.ifelse.io",
     )?));
 
     let f = Closure::wrap(Box::new(move || {
diff --git a/examples/event.rs b/examples/event.rs
index cbb529d0d825f2dfe53f4da405b689e2cbeb9067..f97bfbedb2bf147a541e8b8187a2b823e7c826be 100644
--- a/examples/event.rs
+++ b/examples/event.rs
@@ -11,7 +11,7 @@ fn main() -> Result<(), WebSocketError> {
     console_log::init_with_level(Level::Trace).expect("Failed to enable logging");
     info!("Creating connection");
 
-    let mut client = wasm_sockets::EventClient::new("wss://echo.websocket.org")?;
+    let mut client = wasm_sockets::EventClient::new("wss://ws.ifelse.io")?;
     client.set_on_error(Some(Box::new(|error| {
         error!("{:#?}", error);
     })));
diff --git a/examples/polling.rs b/examples/polling.rs
index 01f78a735245cb976beb74830e7d286770efee7e..45f2b3944444c528a4d8f9320433cccfa5bd6606 100644
--- a/examples/polling.rs
+++ b/examples/polling.rs
@@ -17,7 +17,7 @@ fn main() -> Result<(), WebSocketError> {
     // Client is wrapped in an Rc<RefCell<>> so it can be used within setInterval
     // This isn't required when being used within a game engine
     let client = Rc::new(RefCell::new(wasm_sockets::PollingClient::new(
-        "wss://echo.websocket.org",
+        "wss://ws.ifelse.io",
     )?));
 
     let f = Closure::wrap(Box::new(move || {
diff --git a/src/lib.rs b/src/lib.rs
index 01f781fc3dfd4c4a42db8c73bf3996da1ba6b3aa..3bebb22088d3a650f77223c2a5edae23d6f0f331 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,7 +14,7 @@
 //!     console_log::init_with_level(Level::Trace).expect("Failed to enable logging");
 //!     info!("Creating connection");
 //!
-//!     let mut client = wasm_sockets::EventClient::new("wss://echo.websocket.org")?;
+//!     let mut client = wasm_sockets::EventClient::new("wss://ws.ifelse.io")?;
 //!     client.set_on_error(Some(Box::new(|error| {
 //!         error!("{:#?}", error);
 //!     })));
@@ -60,7 +60,7 @@
 //!     // Client is wrapped in an Rc<RefCell<>> so it can be used within setInterval
 //!     // This isn't required when being used within a game engine
 //!     let client = Rc::new(RefCell::new(wasm_sockets::PollingClient::new(
-//!         "wss://echo.websocket.org",
+//!         "wss://ws.ifelse.io",
 //!     )?));
 //!
 //!     let f = Closure::wrap(Box::new(move || {
@@ -136,7 +136,7 @@ impl PollingClient {
     ///
     /// Note: An Ok() from this function does not mean the connection has succeeded.
     /// ```
-    /// PollingClient::new("wss://echo.websocket.org")?;
+    /// PollingClient::new("wss://ws.ifelse.io")?;
     /// ```
     pub fn new(url: &str) -> Result<Self, WebSocketError> {
         // Create connection
@@ -236,7 +236,7 @@ impl EventClient {
     ///
     /// Note: An Ok() from this function does not mean the connection has succeeded.
     /// ```
-    /// EventClient::new("wss://echo.websocket.org")?;
+    /// EventClient::new("wss://ws.ifelse.io")?;
     /// ```
     pub fn new(url: &str) -> Result<Self, WebSocketError> {
         // Create connection
diff --git a/src/tests.rs b/src/tests.rs
index eb947e16d9b4ab41388b0b4395d501676b351da8..b04b537fcd0e44785f87fd64117c2d866be9d309 100644
--- a/src/tests.rs
+++ b/src/tests.rs
@@ -18,7 +18,7 @@ fn event() {
     console_log::init_with_level(Level::Trace).expect("Failed to enable logging");
     info!("Creating connection");
 
-    let mut client = wasm_sockets::EventClient::new("wss://echo.websocket.org").unwrap();
+    let mut client = wasm_sockets::EventClient::new("wss://ws.ifelse.io").unwrap();
     client.set_on_error(Some(Box::new(|error| {
         error!("{:#?}", error);
     })));