3 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
4 <script src="http://cdn.sockjs.org/sockjs-0.2.min.js"></script>
5 <script src="multiplex.js"></script>
10 margin: 0 20px 0 20px;
12 .box div, .box input {
14 -moz-border-radius: 4px;
32 background-color: #F0F0F0;
36 <head><body lang="en">
37 <h1>SockJS Multiplex example</h1>
39 <div id="first" class="box">
41 <form><input autocomplete="off" value="Type here..."></input></form>
44 <div id="second" class="box">
46 <form><input autocomplete="off"></input></form>
49 <div id="third" class="box">
51 <form><input autocomplete="off"></input></form>
55 // Pipe - convenience wrapper to present data received from an
56 // object supporting WebSocket API in an html element. And the other
57 // direction: data typed into an input box shall be sent back.
58 var pipe = function(ws, el_name) {
59 var div = $(el_name + ' div');
60 var inp = $(el_name + ' input');
61 var form = $(el_name + ' form');
63 var print = function(m, p) {
64 p = (p === undefined) ? '' : JSON.stringify(p);
65 div.append($("<code>").text(m + ' ' + p));
66 div.append($("<br>"));
67 div.scrollTop(div.scrollTop() + 10000);
70 ws.onopen = function() {print('[*] open', ws.protocol);};
71 ws.onmessage = function(e) {print('[.] message', e.data);};
72 ws.onclose = function() {print('[*] close');};
74 form.submit(function() {
75 print('[ ] sending', inp.val());
82 var sockjs_url = '/multiplex';
83 var sockjs = new SockJS(sockjs_url);
85 var multiplexer = new MultiplexedWebSocket(sockjs);
86 var ann = multiplexer.channel('ann');
87 var bob = multiplexer.channel('bob');
88 var carl = multiplexer.channel('carl');
94 $('#first input').focus();