Date: Fri, 29 Mar 2024 13:42:22 +0100 (CET) Message-ID: <926501522.47491.1711716142908@docs.flashphoner.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_47490_216219433.1711716142908" ------=_Part_47490_216219433.1711716142908 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
=D0=94=D0=B0=D0=BD=D0=BD=D1=8B=D0=B9 =D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1= =8C =D1=81=D0=BE=D0=B4=D0=B5=D1=80=D0=B6=D0=B8=D1=82 =D0=BA=D0=BE=D0=B4 =D0= =B4=D0=BB=D1=8F =D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B =D1=81 =D1=87=D0=B0=D1= =82=D0=BE=D0=BC =D0=B2 =D0=BA=D0=BE=D0=BC=D0=BD=D0=B0=D1=82=D0=B5
createChat() code
=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0= =B8=D1=8F-=D0=BE=D0=B1=D0=B5=D1=80=D1=82=D0=BA=D0=B0 =D0=B4=D0=BB=D1=8F =D0= =B2=D1=8B=D0=B7=D0=BE=D0=B2=D0=B0 =D0=B8=D0=B7 =D0=BE=D1=81=D0=BD=D0=BE=D0= =B2=D0=BD=D0=BE=D0=B9 =D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B8, =D0=BE=D0=B3=D1= =80=D0=B0=D0=BD=D0=B8=D1=87=D0=B8=D0=B2=D0=B0=D0=B5=D1=82 =D0=BE=D0=B1=D0= =BB=D0=B0=D1=81=D1=82=D1=8C =D0=B2=D0=B8=D0=B4=D0=B8=D0=BC=D0=BE=D1=81=D1= =82=D0=B8
const createChat = =3D function(room, messages, input, sendButton) {=20
=D0=9E=D0=B1=D1=8A=D1=8F=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5 =D0=BB=D0= =BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D1=85 =D0=BF=D0=B5=D1=80=D0=B5=D0= =BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85: =D0=BA=D0=BE=D0=BD=D1=81=D1=82=D0=B0=D0= =BD=D1=82=D1=8B =D0=B8 =D1=86=D0=B2=D0=B5=D1=82=D0=B0
const constants =3D= SFU.constants; const chatSelfColour =3D "green"; const chatTextColour =3D "black"; const chatOtherColour =3D "red"; const chatEventColour =3D "navy";=20
=D0=9F=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=BA=D0=B0 =D0=BD=D0=B0 =D1=81=D0= =BE=D0=B1=D1=8B=D1=82=D0=B8=D1=8F =D0=BA=D0=BE=D0=BC=D0=BD=D0=B0=D1=82=D1= =8B, =D0=B8=D0=BC=D0=B5=D1=8E=D1=89=D0=B8=D0=B5 =D0=BE=D1=82=D0=BD=D0=BE=D1= =88=D0=B5=D0=BD=D0=B8=D0=B5 =D0=BA =D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1= =8F=D0=BC =D1=87=D0=B0=D1=82=D0=B0
room.on(constants.S= FU_ROOM_EVENT.MESSAGE, function(e) { appendMessage(e, chatOtherColour, chatTextColour); }).on(constants.SFU_ROOM_EVENT.JOINED, function(e) { appendMessage({ nickName: e.name, message: e.type }, chatOtherColour, chatEventColour); }).on(constants.SFU_ROOM_EVENT.LEFT, function(e) { appendMessage({ nickName: e.name, message: e.type }, chatOtherColour, chatEventColour); });=20
=D0=9F=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=BA=D0=B0 =D0=BD=D0=B0 =D1=81=D0= =BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B5 SFU_ROOM_EVENT.MESSAGE. =D0=9F=D1=80=D0= =B8 =D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B8 =D1=81=D0=BE=D0= =B1=D1=8B=D1=82=D0=B8=D1=8F, =D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0= =B8=D0=B5 =D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B0=D0=B5=D1=82=D1= =81=D1=8F =D0=B2 =D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC =D1= =87=D0=B0=D1=82=D0=B5
.on(constants.SFU_R= OOM_EVENT.MESSAGE, function(e) { appendMessage({ nickName: getNickName(e.message), message: getMessage(e.message) }, chatOtherColour, chatTextColour); })=20
=D0=9F=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=BA=D0=B0 =D0=BD=D0=B0 =D1=81=D0= =BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B5 SFU_ROOM_EVENT.JOINED. =D0=9F=D1=80=D0=B8= =D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B8, =D1=81=D0=BE=D0=BE= =D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5 =D0=BE =D0=B2=D1=85=D0=BE=D0=B4=D0=B5 = =D1=83=D1=87=D0=B0=D1=81=D1=82=D0=BD=D0=B8=D0=BA=D0=B0 =D0=BE=D1=82=D0=BE= =D0=B1=D1=80=D0=B0=D0=B6=D0=B0=D0=B5=D1=82=D1=81=D1=8F =D0=B2 =D0=BB=D0=BE= =D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC =D1=87=D0=B0=D1=82=D0=B5
.on(constants.SFU_R= OOM_EVENT.JOINED, function(e) { appendMessage({ nickName: e.name, message: e.type }, chatOtherColour, chatEventColour); })=20
=D0=9F=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=BA=D0=B0 =D0=BD=D0=B0 =D1=81=D0= =BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B5 SFU_ROOM_EVENT.LEFT. =D0=9F=D1=80=D0=B8 = =D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B8, =D1=81=D0=BE=D0=BE= =D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5 =D0=BE =D0=B2=D1=8B=D1=85=D0=BE=D0=B4= =D0=B5 =D1=83=D1=87=D0=B0=D1=81=D1=82=D0=BD=D0=B8=D0=BA=D0=B0 =D0=BE=D1=82= =D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B0=D0=B5=D1=82=D1=81=D1=8F =D0=B2 =D0=BB= =D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC =D1=87=D0=B0=D1=82=D0=B5= p>
.on(constants.SFU_R= OOM_EVENT.LEFT, function(e) { appendMessage({ nickName: e.name, message: e.type }, chatOtherColour, chatEventColour); });=20
sendMessage() code
=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F sendMessage =D1=80=D0=B5=D0= =B0=D0=BB=D0=B8=D0=B7=D1=83=D0=B5=D1=82 =D1=80=D0=B0=D0=B7=D0=B1=D0=BE=D1= =80 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1= =8C=D1=81=D0=BA=D0=BE=D0=B3=D0=BE =D0=B2=D0=B2=D0=BE=D0=B4=D0=B0, =D0=BE=D1= =82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D1=83 =D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0= =B5=D0=BD=D0=B8=D1=8F =D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D1=83 =D0=B8 =D0= =BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5 =D1=81=D0= =BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D1=8F =D0=B2 =D0=BB=D0=BE=D0=BA=D0= =B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC =D1=87=D0=B0=D1=82=D0=B5
=D0=9E=D1=82=D0=BC=D0=B5=D1=82=D0=B8=D0=BC, =D1=87=D1=82=D0=BE =D1=81=D0= =BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D1=8F =D0=BE=D1=82=D0=BF=D1=80=D0= =B0=D0=B2=D0=BB=D1=8F=D1=8E=D1=82=D1=81=D1=8F =D0=BF=D0=BE WebRTC data chan= nels
const sendMessage = =3D function() { let message =3D input.value; input.value =3D ""; room.sendMessage(message); appendMessage({ nickName: nickName.value, message: message }, chatSelfColour, chatTextColour); }=20
=D0=9F=D1=80=D0=B8=D0=B2=D1=8F=D0=B7=D0=BA=D0=B0 =D0=BA=D0=BD=D0=BE=D0= =BF=D0=BA=D0=B8 Send =D0=BA =D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8 send= Message
sendButton.addEvent= Listener("click", sendMessage);=20
=D0=9E=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0 =D1=81=D0=BE=D0=BE=D0= =B1=D1=89=D0=B5=D0=BD=D0=B8=D1=8F =D0=BF=D0=BE =D0=BD=D0=B0=D0=B6=D0=B0=D1= =82=D0=B8=D1=8E Enter
input.onkeyup =3D f= unction(e) { if (e.keyCode =3D=3D=3D 13) { if (e.shiftKey) { } else { sendMessage(); } return false; } }=20
=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F =D1=80=D0=B5=D0=B0=D0=BB=D0= =B8=D0=B7=D1=83=D0=B5=D1=82 =D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1= =80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5 =D0=B8 =D0=BE=D1=82=D0=BE=D0=B1=D1= =80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5 =D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0= =B5=D0=BD=D0=B8=D0=B9 =D0=B2 =D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0= =BE=D0=BC =D1=87=D0=B0=D1=82=D0=B5
appendMessage() code
const appendMessage= =3D function(msg, nickColour, msgColour) { let message =3D document.createElement('div'); message.setAttribute("class","message"); messages.appendChild(message); let nickDiv =3D document.createElement('div'); nickDiv.style.color =3D nickColour; nickDiv.innerText =3D getChatTimestamp() + " " + msg.nickName + ":"; message.appendChild(nickDiv); let msgDiv =3D document.createElement('div'); msgDiv.style.color =3D msgColour; msgDiv.innerText =3D msg.message; message.appendChild(msgDiv); scrollToBottom(); }=20
=D0=92=D1=81=D0=BF=D0=BE=D0=BC=D0=BE=D0=B3=D0=B0=D1=82=D0=B5=D0=BB=D1=8C= =D0=BD=D0=B0=D1=8F =D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F =D0=B4=D0=BB= =D1=8F =D0=BF=D1=80=D0=BE=D0=BA=D1=80=D1=83=D1=82=D0=BA=D0=B8 =D1=81=D0=BF= =D0=B8=D1=81=D0=BA=D0=B0 =D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8= =D0=B9 =D0=B2=D0=BD=D0=B8=D0=B7
scrollToBottom() code
const scrollToBotto= m =3D function() { messages.scrollTop =3D messages.scrollHeight; }=20
=D0=92=D1=81=D0=BF=D0=BE=D0=BC=D0=BE=D0=B3=D0=B0=D1=82=D0=B5=D0=BB=D1=8C= =D0=BD=D0=B0=D1=8F =D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F =D0=B4=D0=BB= =D1=8F =D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0 =D0=B2=D1=80=D0=B5=D0=BC=D0=B5= =D0=BD=D0=B8
getTimeStamp() code
const getChatTimest= amp =3D function() { let currentdate =3D new Date(); return currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + = currentdate.getSeconds(); }=20