finished code surgery
patient is comatose and is missing both testicles and eyeballs but is legally alive
This commit is contained in:
+17
-58
@@ -18,82 +18,41 @@ main
|
||||
: Promise<void>
|
||||
{
|
||||
// start websocket immediately
|
||||
let ws = new WebSocket('/ws/webrtc');
|
||||
|
||||
// grab document elements
|
||||
let init = document.getElementById('init') as HTMLDivElement;
|
||||
let roster = document.getElementById('roster') as HTMLDivElement;
|
||||
let roster_ul = document.getElementById('roster-ul') as HTMLUListElement;
|
||||
let whoami = document.getElementById('whoami') as HTMLHeadingElement;
|
||||
|
||||
let init_name = document.getElementById('init-name') as HTMLInputElement;
|
||||
let ws: WebSocket;
|
||||
let init = document.getElementById('init') as HTMLDivElement;
|
||||
let init_join = document.getElementById('init-join') as HTMLButtonElement;
|
||||
|
||||
// handle button click
|
||||
init_join.addEventListener('click',
|
||||
function() {
|
||||
handle_join(init, init_name, roster, ws);
|
||||
init.hidden = true;
|
||||
ws = new WebSocket('/ws/webrtc');
|
||||
ws.onopen = function(e) { console.log('ws open'); };
|
||||
ws.onclose = function(e) { console.warn('ws closed'); };
|
||||
ws.onerror = function(e) { console.error('ws error:', e); };
|
||||
ws.onmessage =
|
||||
function(e) {
|
||||
// console.log('ws message:', e.data);
|
||||
let message = JSON.parse(e.data) as ws_msg;
|
||||
handle_ws_msg(message);
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
// handle message from ws
|
||||
ws.onopen = function(e) { console.log('ws open:', e); };
|
||||
ws.onclose = function(e) { console.warn('ws closed:', e); };
|
||||
ws.onerror = function(e) { console.error('ws error:', e); };
|
||||
ws.onmessage =
|
||||
function(e) {
|
||||
// console.log('ws message:', e.data);
|
||||
let message = JSON.parse(e.data) as ws_msg;
|
||||
handle_ws_msg(message, roster_ul, whoami);
|
||||
};
|
||||
}
|
||||
|
||||
type ws_msg = ["username", string]
|
||||
| ["users", Array<string>];
|
||||
type ws_msg = ["join", string]
|
||||
| ["down", string];
|
||||
|
||||
function
|
||||
handle_ws_msg
|
||||
(message : ws_msg,
|
||||
roster_ul : HTMLUListElement,
|
||||
whoami : HTMLHeadingElement)
|
||||
(message: ws_msg)
|
||||
: void
|
||||
{
|
||||
switch(message[0]) {
|
||||
case "username":
|
||||
whoami.innerText = 'Whoami: ' + message[1];
|
||||
break;
|
||||
case "users":
|
||||
for (let uname of message[1]) {
|
||||
let thisli = document.createElement('li');
|
||||
thisli.innerText = uname;
|
||||
roster_ul.appendChild(thisli);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
console.log('message from server:', message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
async function
|
||||
handle_join
|
||||
(init : HTMLDivElement,
|
||||
init_name : HTMLInputElement,
|
||||
peers : HTMLDivElement,
|
||||
ws : WebSocket)
|
||||
: Promise<void>
|
||||
{
|
||||
console.log('connecting...');
|
||||
let user_name: string = init_name.value.trim();
|
||||
console.log('username:', user_name);
|
||||
|
||||
ws_send_json(ws, ['username', user_name]);
|
||||
|
||||
init.hidden = true;
|
||||
peers.hidden = false;
|
||||
}
|
||||
|
||||
|
||||
function
|
||||
ws_send_json
|
||||
(ws : WebSocket,
|
||||
|
||||
Reference in New Issue
Block a user