on wai-handler-launch-3.0.2.4 help sign in
80 lines 2.3 kB history raw
1function createWebSocket(path) {
2 var host = window.location.hostname;
3 if(host == '') host = 'localhost';
4 var uri = 'ws://' + host + ':9160' + path;
6 var Socket = "MozWebSocket" in window ? MozWebSocket : WebSocket;
7 return new Socket(uri);
8}
10var users = [];
12function refreshUsers() {
13 $('#users').html('');
14 for(i in users) {
15 $('#users').append($(document.createElement('li')).text(users[i]));
16 }
19function onMessage(event) {
20 var p = $(document.createElement('p')).text(event.data);
22 $('#messages').append(p);
23 $('#messages').animate({scrollTop: $('#messages')[0].scrollHeight});
25 if(event.data.match(/^[^:]* joined/)) {
26 var user = event.data.replace(/ .*/, '');
27 users.push(user);
28 refreshUsers();
29 }
31 if(event.data.match(/^[^:]* disconnected/)) {
32 var user = event.data.replace(/ .*/, '');
33 var idx = users.indexOf(user);
34 users = users.slice(0, idx).concat(users.slice(idx + 1));
35 refreshUsers();
36 }
39$(document).ready(function () {
40 $('#join-form').submit(function () {
41 $('#warnings').html('');
42 var user = $('#user').val();
43 var ws = createWebSocket('/');
45 ws.onopen = function() {
46 ws.send('Hi! I am ' + user);
47 };
49 ws.onmessage = function(event) {
50 if(event.data.match('^Welcome! Users: ')) {
51 /* Calculate the list of initial users */
52 var str = event.data.replace(/^Welcome! Users: /, '');
53 if(str != "") {
54 users = str.split(", ");
55 refreshUsers();
56 }
58 $('#join-section').hide();
59 $('#chat-section').show();
60 $('#users-section').show();
62 ws.onmessage = onMessage;
64 $('#message-form').submit(function () {
65 var text = $('#text').val();
66 ws.send(text);
67 $('#text').val('');
68 return false;
69 });
70 } else {
71 $('#warnings').append(event.data);
72 ws.close();
73 }
74 };
76 $('#join').append('Connecting...');
78 return false;
79 });
80});