Socket.io IF and ELSE works at the same time












1














  socket.on('get-point', (data) => {
var socketID = data.socketID;

if(socketID === $("#socketID").text()) {
document.getElementById("user-points").innerHTML = data.points;
console.log('ID: ' + $("#socketID").text());
} else {
socket.emit('opponent-get-point');
}
});

socket.on('opponent-get-point', (dataOpponent) => {
document.getElementById("opponent-points").innerHTML = dataOpponent.points;
console.log('oppoent gets point');
});


Can someone explain me why even though if is correct, the else statement also works on my computer. Like I click the button and then the opponent-get-point emits also. Why this is happening ?



If opponent clicks the button then I see that he gets the point but then on his screen both players also gets the point.










share|improve this question






















  • It seems like this logic should be done server-side, not client-side. But that aside, one peer is saying the opponent should get the point if they're not the recipient of the point, but when the opponent receives the event, they're assigning points to their opponent, not themselves.
    – Patrick Roberts
    Nov 19 '18 at 19:36












  • Why your clients emit opponent-get-point?
    – Milad Aghamohammadi
    Nov 20 '18 at 5:34










  • well if the button is clicked and it's not from the user (myself) then emit that socket. That means that button was clicked by another user.
    – abraom_185
    Nov 20 '18 at 13:10
















1














  socket.on('get-point', (data) => {
var socketID = data.socketID;

if(socketID === $("#socketID").text()) {
document.getElementById("user-points").innerHTML = data.points;
console.log('ID: ' + $("#socketID").text());
} else {
socket.emit('opponent-get-point');
}
});

socket.on('opponent-get-point', (dataOpponent) => {
document.getElementById("opponent-points").innerHTML = dataOpponent.points;
console.log('oppoent gets point');
});


Can someone explain me why even though if is correct, the else statement also works on my computer. Like I click the button and then the opponent-get-point emits also. Why this is happening ?



If opponent clicks the button then I see that he gets the point but then on his screen both players also gets the point.










share|improve this question






















  • It seems like this logic should be done server-side, not client-side. But that aside, one peer is saying the opponent should get the point if they're not the recipient of the point, but when the opponent receives the event, they're assigning points to their opponent, not themselves.
    – Patrick Roberts
    Nov 19 '18 at 19:36












  • Why your clients emit opponent-get-point?
    – Milad Aghamohammadi
    Nov 20 '18 at 5:34










  • well if the button is clicked and it's not from the user (myself) then emit that socket. That means that button was clicked by another user.
    – abraom_185
    Nov 20 '18 at 13:10














1












1








1







  socket.on('get-point', (data) => {
var socketID = data.socketID;

if(socketID === $("#socketID").text()) {
document.getElementById("user-points").innerHTML = data.points;
console.log('ID: ' + $("#socketID").text());
} else {
socket.emit('opponent-get-point');
}
});

socket.on('opponent-get-point', (dataOpponent) => {
document.getElementById("opponent-points").innerHTML = dataOpponent.points;
console.log('oppoent gets point');
});


Can someone explain me why even though if is correct, the else statement also works on my computer. Like I click the button and then the opponent-get-point emits also. Why this is happening ?



If opponent clicks the button then I see that he gets the point but then on his screen both players also gets the point.










share|improve this question













  socket.on('get-point', (data) => {
var socketID = data.socketID;

if(socketID === $("#socketID").text()) {
document.getElementById("user-points").innerHTML = data.points;
console.log('ID: ' + $("#socketID").text());
} else {
socket.emit('opponent-get-point');
}
});

socket.on('opponent-get-point', (dataOpponent) => {
document.getElementById("opponent-points").innerHTML = dataOpponent.points;
console.log('oppoent gets point');
});


Can someone explain me why even though if is correct, the else statement also works on my computer. Like I click the button and then the opponent-get-point emits also. Why this is happening ?



If opponent clicks the button then I see that he gets the point but then on his screen both players also gets the point.







node.js socket.io






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 '18 at 19:26









abraom_185abraom_185

587




587












  • It seems like this logic should be done server-side, not client-side. But that aside, one peer is saying the opponent should get the point if they're not the recipient of the point, but when the opponent receives the event, they're assigning points to their opponent, not themselves.
    – Patrick Roberts
    Nov 19 '18 at 19:36












  • Why your clients emit opponent-get-point?
    – Milad Aghamohammadi
    Nov 20 '18 at 5:34










  • well if the button is clicked and it's not from the user (myself) then emit that socket. That means that button was clicked by another user.
    – abraom_185
    Nov 20 '18 at 13:10


















  • It seems like this logic should be done server-side, not client-side. But that aside, one peer is saying the opponent should get the point if they're not the recipient of the point, but when the opponent receives the event, they're assigning points to their opponent, not themselves.
    – Patrick Roberts
    Nov 19 '18 at 19:36












  • Why your clients emit opponent-get-point?
    – Milad Aghamohammadi
    Nov 20 '18 at 5:34










  • well if the button is clicked and it's not from the user (myself) then emit that socket. That means that button was clicked by another user.
    – abraom_185
    Nov 20 '18 at 13:10
















It seems like this logic should be done server-side, not client-side. But that aside, one peer is saying the opponent should get the point if they're not the recipient of the point, but when the opponent receives the event, they're assigning points to their opponent, not themselves.
– Patrick Roberts
Nov 19 '18 at 19:36






It seems like this logic should be done server-side, not client-side. But that aside, one peer is saying the opponent should get the point if they're not the recipient of the point, but when the opponent receives the event, they're assigning points to their opponent, not themselves.
– Patrick Roberts
Nov 19 '18 at 19:36














Why your clients emit opponent-get-point?
– Milad Aghamohammadi
Nov 20 '18 at 5:34




Why your clients emit opponent-get-point?
– Milad Aghamohammadi
Nov 20 '18 at 5:34












well if the button is clicked and it's not from the user (myself) then emit that socket. That means that button was clicked by another user.
– abraom_185
Nov 20 '18 at 13:10




well if the button is clicked and it's not from the user (myself) then emit that socket. That means that button was clicked by another user.
– abraom_185
Nov 20 '18 at 13:10












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53381356%2fsocket-io-if-and-else-works-at-the-same-time%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53381356%2fsocket-io-if-and-else-works-at-the-same-time%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

How to fix TextFormField cause rebuild widget in Flutter

Npm cannot find a required file even through it is in the searched directory