-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchattest.js
77 lines (70 loc) · 1.99 KB
/
chattest.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
var email = null;
var fullName = null;
var user = null;
var hushhush = null;
var term = null;
var ws = null;
var colors = {};
function initialize() {
fullName = document.getElementsByName('fullName')[0].content;
email = document.getElementsByName('kerberos')[0].content;
user = email.split('@')[0];
port = window.location.hash.substring(1).split('/')[0];
if(port == '') {
port = '5001';
}
try {
ws = new WebSocket("wss://hexnet.mit.edu:8888/localhost;" + port);
} catch(err) {
ws = new MozWebSocket("wss://hexnet.mit.edu:8888/localhost;" + port);
}
ws.onmessage = function(evt) {
var parsed = parseMessage(evt.data);
if (parsed) {
addToChatLog(parsed);
}
}
auth(ws,"chatService");
$("#chatbar").click(function(){
$("#chatbox").slideToggle();
});
$("#chatbox").slideToggle();
}
function terminate() {
}
function sendMessage() {
var message = {
'username':user,
'chat':document.getElementById("usermsg").value
}
ws.send(JSON.stringify(message));
document.getElementById("usermsg").value="";
}
function addToChatLog(message) {
var chatlog = document.getElementById("chatlog");
chatlog.innerHTML += message;
chatlog.scrollTop = chatlog.scrollHeight;
}
function parseMessage(message) {
message = JSON.parse(message);
if ("chat" in message) {
return '<p> <span style="color:' + colors[message.username] + '">' + message.username + ': </span>' + message.chat + '</p>';
}
else if ("usersonline" in message) {
updateUsersOnline(message.usersonline);
return "";
}
}
function updateUsersOnline(usersOnline) {
var usersOnlineParsed = "";
for (var i=0 ; i < usersOnline.length ; i++) {
userDict = usersOnline[i];
var name = userDict.username;
var color = userDict.color;
colors[name] = color;
usersOnlineParsed += '<p style="color:' + color + '">' + name + "</p>";
}
document.getElementById("usersonline").innerHTML = usersOnlineParsed;
}
window.onload = initialize;
window.onunload = terminate;