<!DOCTYPE html> <html> <head> <!-- Please copy the following files into here: --> <script src="./Long.min.js"></script> <!-- https://raw.github.com/dcodeIO/Long.js/master/dist/Long.min.js --> <script src="./ByteBufferAB.min.js"></script> <!-- https://raw.github.com/dcodeIO/ByteBuffer.js/master/dist/ByteBufferAB.min.js --> <script src="./ProtoBuf.min.js"></script> <!-- https://raw.github.com/dcodeIO/ProtoBuf.js/master/dist/ProtoBuf.min.js --> <script> if (typeof dcodeIO === 'undefined' || !dcodeIO.ProtoBuf) { throw(new Error("ProtoBuf.js is not present. Please see www/index.html for manual setup instructions.")); } // Initialize ProtoBuf.js var ProtoBuf = dcodeIO.ProtoBuf; var Message = ProtoBuf.loadProtoFile("./example.proto").build("Message"); </script> </head> <body> <textarea id="log" style="width: 100%; height: 200px"></textarea><br /> <input type="text" id="text" value="hello world!" /> <button onclick="send()">Send</button> <script> var log = document.getElementById("log"); var text = document.getElementById("text"); // Connect to our server: node server.js var socket = new WebSocket("ws://localhost:8080/ws"); socket.binaryType = "arraybuffer"; // We are talking binary function send() { if (socket.readyState == WebSocket.OPEN) { var msg = new Message(text.value); socket.send(msg.toArrayBuffer()); log.value += "Sent: "+msg.text+"\n"; } else { log.value += "Not connected\n"; } } socket.onopen = function() { log.value += "Connected\n"; }; socket.onclose = function() { log.value += "Disconnected\n"; }; socket.onmessage = function(evt) { try { // Decode the Message var msg = Message.decode(evt.data); log.value += "Received: "+msg.text+"\n"; } catch (err) { log.value += "Error: "+err+"\n"; } }; log.value = ""; // Clear log on reload </script> </body> </html>