]>
git.mar77i.info Git - hublib/blob - hubapps/first/master.js
d6074e8588d6e0ca6b55b1bfcf6785eca08814af
4 var clients_list
= null;
7 common
.write(input_div
.previousSibling
, msg
);
9 function master_send(hub
, client_ids
, client_id
, obj
) {
10 obj
.client_ids
= client_ids
;
11 obj
.client_id
= client_id
;
12 hub
.send(JSON
.stringify(obj
));
15 function setup_chat(hub
) {
16 clients_list
= new common
.ClientsList();
17 input_div
= document
.createElement("div");
18 input_div
.append(document
.createTextNode("MASTER "));
19 input_div
.append(common
.get_input(function () {
20 var input
= input_div
.getElementsByTagName("input")[0];
21 master_send(hub
, clients_list
.selected(), null, {
25 write("MASTER [null]: " + input
.value
);
29 document
.body
.append(document
.createElement("div")); // output
30 document
.body
.append(input_div
);
35 write("connected to " + ws_uri
);
39 write("connection lost");
42 function join_leave_broadcast(hub
, client_id
, client_name
, action
) {
43 write("[action]: " + client_name
+ " " + obj
.action
+ "s");
44 master_send(hub
, clients_list
.all(), obj
.client_id
, {
50 function message(msg
) {
51 var obj
= JSON
.parse(msg
.data
);
53 if (obj
.action
=== "join") {
54 clients_list
.append(obj
.client_id
);
56 this, obj
.client_id
, clients_list
.get_name(obj
.client_id
), obj
.action
58 } else if (obj
.action
=== "leave") {
59 client_name
= clients_list
.get_name(obj
.client_id
);
60 clients_list
.remove(obj
.client_id
);
61 join_leave_broadcast(this, obj
.client_id
, client_name
, obj
.action
);
62 } else if (obj
.action
== "set_name") {
63 client_name
= clients_list
.set_name(obj
.client_id
, obj
.name
);
70 master_send(this, clients_list
.all(), obj
.client_id
, {
72 "old_name": client_name
,
75 } else if (obj
.hasOwnProperty("data")) {
76 client_name
= clients_list
.get_name(obj
.client_id
);
77 write(client_name
+ " [" + obj
.client_id
+ "]: " + obj
.data
);
78 master_send(this, clients_list
.all(), obj
.client_id
, {
85 common
.setup(function () {new common
.HubClient(ws_uri
, open
, close
, message
)});