if (!!this.st.conn && this.st.conn.readyState == 1) //1 == OPEN state
funcPollClients();
else //socket not ready yet (initial loading)
- {
- const socketOpenListener = funcPollClients;
- this.st.conn.onopen = socketOpenListener;
- }
- // TODO: is this required here?
- this.oldOnmessage = this.st.conn.onmessage || Function.prototype;
+ this.st.conn.onopen = funcPollClients;
this.st.conn.onmessage = this.socketMessageListener;
const oldOnclose = this.st.conn.onclose;
const socketCloseListener = () => {
},
// Messaging center:
socketMessageListener: function(msg) {
- // Save and call current st.conn.onmessage if one was already defined
- // --> also needed in future Game.vue (also in Chat.vue component)
- this.oldOnmessage(msg);
const data = JSON.parse(msg.data);
switch (data.code)
{
vid: c.vid,
timeControl: c.timeControl
};
-
- // TODO: understand multiple (increasing) "send challenge" events.... (when potential opponent navigate Hall --> variants --> Hall)
-console.log("send challenge to " + data.from);
-
this.st.conn.send(JSON.stringify({code:"challenge",
chall:myChallenge, target:data.from}));
}
}
case "challenge":
{
-
-console.log(data.chall);
-
// Receive challenge from some player (+sid)
let newChall = data.chall;
newChall.type = this.classifyObject(data.chall);
cid: c.id, target: c.from.sid}));
}
}
+ else
+ localStorage.removeItem("challenge");
// In all cases, the challenge is consumed:
ArrayFun.remove(this.challenges, ch => ch.id == c.id);
// NOTE: deletechallenge event might be redundant (but it's easier this way)