|
@@ -1,3 +1,5 @@
|
|
|
+let socket;
|
|
|
+
|
|
|
function noPromise(){
|
|
|
let resolve, reject;
|
|
|
|
|
@@ -72,25 +74,33 @@ let RPC = {
|
|
|
chat.appendChild(msg2dom(data))
|
|
|
},
|
|
|
|
|
|
- //getUserCount(){
|
|
|
- //return userCount;
|
|
|
- //}
|
|
|
-}
|
|
|
+ getUserCount({value}){
|
|
|
+ chat.appendChild(msg2dom({nick: 'чатег', message: `${value} user online` , timestamp: (new Date()).getTime()}))
|
|
|
+ }
|
|
|
+};
|
|
|
|
|
|
|
|
|
-const socket = new WebSocket("ws://localhost:8999/");
|
|
|
-const aGena = asynchronize({s: socket, chunkEventName: 'message', endEventName: 'close'});
|
|
|
|
|
|
(async () => {
|
|
|
- for await (let msg of aGena()){
|
|
|
- let data = JSON.parse(msg.data)
|
|
|
- if (data.func in RPC){
|
|
|
- RPC[data.func](data)
|
|
|
+ while (true){
|
|
|
+ try{
|
|
|
+ socket = new WebSocket("ws://localhost:8999/");
|
|
|
+ let aGena = asynchronize({s: socket, chunkEventName: 'message', endEventName: 'close'});
|
|
|
+ for await (let msg of aGena()){
|
|
|
+ let data = JSON.parse(msg.data)
|
|
|
+ if (data.func in RPC){
|
|
|
+ RPC[data.func](data)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (e){
|
|
|
+ console.log(e)
|
|
|
}
|
|
|
}
|
|
|
})()
|
|
|
|
|
|
|
|
|
send.onclick = function(){
|
|
|
- socket.send(JSON.stringify({func: 'addMessage', nick: nick.value, message: msg.value}))
|
|
|
+ if (socket && typeof socket.send === 'function')
|
|
|
+ socket.send(JSON.stringify({func: 'addMessage', nick: nick.value, message: msg.value}))
|
|
|
}
|