# Smart WebSocket ```js // constructor(socketAddress, options = [], autoReconnect = true, debugName = null) let socket = SmartWebSocket("ws://127.0.0.1:8080", [], true, "sock"); // close if connection is open, then re-open connection socket.reconnect() // close socket and disable auto-reconnect socket.close() // is socket connection open if (socket.isReady()) { // sends // {"event" : "myEvent", "data" : { "abc" : "def" }} // to server // data is stringified using JSON before sending socket.send("myEvent", { "abc" : "def"}); // sends // abcdef // to server. Same as calling socket.send on a regular WebSocket socket.sendRaw("abcdef"); } // is called when a JSON of the kind {"event" : "anotherEvent", "data" : {}} is received socket.on("anotherEvent", (data) => { console.log(data); }); // same as calling socket.addEventListener("open") on a regular WebSocket // same behaviour applies to events "close", "error" and "message" socket.on("open", (event) => { console.log(event); }); ```