<!doctype html> <html> <head> <title>IRC Client Test</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="http://cdn.sockjs.org/sockjs-0.3.min.js"></script> <style> #container { width: 800px; margin: 40px auto; padding: 0; } #irc-holder { height: 600px; width: 800px; overflow: auto; border: 2px solid black; } #irc { width: 100%; border-collapse: collapse; } #irc tr { border-bottom: 1px solid gray; } #chatter input[type="text"] { width: 700px; } #chatter input[type="submit"] { width: 90px; } #protocol { font-size: 1.5em; margin: auto; width: 300px; display: block; } </style> </head> <body> <div id="container"> <div id="irc-holder"> <table id="irc"></table> </div> <form method="GET" id="chatter"> <input type="text" /> <input type="submit" value="Send" /> <br /> <select id="protocol"> <option value="websocket" selected>Websocket</option> <option value="xdr-streaming">XDR Streaming</option> <option value="xhr-streaming">XHR Streaming</option> <option value="iframe-eventsource">Eventsource</option> <option value="iframe-htmlfile">HTMLFile</option> <option value="xdr-polling">XDR Polling</option> <option value="xhr-polling">XHR Polling</option> <option value="iframe-xhr-polling">XHR Polling (IFrame)</option> <option value="jsonp-polling">JSONP Polling</option> </select> </form> </div> <script> $(document).keypress(function(e) { return e.which !== 0; }); var url = 'http://127.0.0.1:6672'; var conn = false; function connect() { if(conn) conn.close() conn = false var protocol = $('#protocol').val(); conn = new SockJS(url,null,{debug:true,devel:true,protocols_whitelist:[protocol]}); var log = function(msg) { $('#irc').append($('<tr>').html($('<td>').html(msg))); }; conn.onopen = function(evt) { log('<i>Connected via '+$('#protocol').val()+'</i>'); }; conn.onclose = function(evt) { log('<i>Disconnected</i>'); }; conn.onmessage = function(evt) { log($('<div>').text(evt.data).html()); }; } $('#chatter').submit(function() { var txt = $(this).find('input[type="text"]'); var m = txt.val(); conn.send(m+"\r\n"); txt.val(''); return false; }); $('#protocol').change(connect); connect(); </script> </body> </html>