Problems with multiple client connections

11 Mensagens, 1 Páginas:  1 ↖ Voltar a lista de tópicos

Pontuação: +1

1. No-Time-no-Musume,

Hello,

recently I observed some problems with connections to the playroom with multiple clients at once, for example while connecting from one device to another. This problem can actually be divided into how it was before todays update (around 11:30) and how it is now. I decided to keep both versions, as it might give an idea of what's going on there and what could be done about it.

How it was before:
Whenever there was more than one connection, client always gave a window with Error, Protocol error #23 and Ok, after selecting that the client disappeared. On the other hand the web client tried to reconnect for infinity, so if you connected from 2 different web clients (can be even as different tabs in the same browser), they would be fighting with each other (which could be seen as reconnection spam in the chat). Also, one of the clients also displayed Protocol error #23 in the history:

Connecting... (play.qcsalon.net:443)
Connection established
Unknown command: fail, arg=Protocol error #23
Disconnected

I have a feeling, that one client actually tries to send a command to kick the other client, but something on the way doesn't understand and so it results in the error instead of executing the command. It's also possible, that the playroom website being temporarily unavailable is due to server overload from these repeated connection attempts.

How it is after the update:
The web client still tries to connect to the server for infinity, but whenever I try to connect to one account from more than one client, that account gets banned from the server for certain period of time. The spam in the history is then pretty similar, just the error message got updated:

Connecting... (play.qcsalon.net:443)
Connection established
Unknown command: fail, arg=Trop de reconnexions / Too many reconnections
Veuillez patienter quelques instants avant de vous reconnecter / Please wait a while before reconnecting.
Disconnected

This is on the web client, the desktop client probably has a similar alternative (didn't test that one). This solution actually prevents the spam of reconnections in the history, but at the same time bans the person to whom it happens for really long (actually it seems, that's it's like 15 minutes from the last attempt to connect).

It's like a ping-pong of 2 web clients through the server vs. solo ping-pong between any client and the wall (server), which refuses any connection attempts from the "banned" account, while all the web clients still send the attempts for infinity (unless they are closed). So I'd say this is only a temporary solution, that only helps to prevent the spam.

I hope this brings any useful information that could help to solve the problem. I decided to send this as a separate topic, since otherwise I would have to edit my last post in the "Important update today" topic and update of updated post would probably cause a lot of mess.

Pontuação: +1

2. Aminiel,

Hello,

That was indeed the purpose of the update of this morning. I'm still in the adjustment phase with this, so you can still expect a certain number of reboots in the next few days.

IN any case, you aren't supposed to be connected twice with the same account at the same time. If you want to open the windows client, first close the web client, or conversely.
If both are trying to connect at the same time, I must put a stop, otherwise because of the auto-reconnect feature, both are trying to steal the connection indefinitely.

It's maybe a little too agressive, but unless I find a better idea, it will basically stay like that for the moment.
IF you close one of the two clients in a reasonable time, you shouldn't be banned for more than 20 or 30 seconds. From there, the longer the flood, the longer the ban. Simple and efficient.

Pontuação: +1

3. No-Time-no-Musume,

Thanks for reply,

....IN any case, you aren't supposed to be connected twice with the same account at the same time. If you want to open the windows client, first close the web client, or conversely.
....If both are trying to connect at the same time, I must put a stop, otherwise because of the auto-reconnect feature, both are trying to steal the connection indefinitely.

Of course no one should be here more than once (I performed the above mentioned experiments mainly for the test purposes) and I agree this infinite connection should be stopped somehow. But before it worked that the newly connected client simply kicked out the old client, now the server isn't able to select one and kick it.

....IF you close one of the two clients in a reasonable time, you shouldn't be banned for more than 20 or 30 seconds. From there, the longer the flood, the longer the ban. Simple and efficient.

Here I wonder what is "reasonable time". If you have desktop client, it's pretty easy, it just attempts to connect once, and if there is any other connection, it just pops up the error window and closes. But with web client, even a very old phone (that is a 7 years old lenovo A5000, 1gb of ram and nearly dead internal storage) can perform several connection attempts per second, but at the same time reacts pretty slowly if you want to do something about it - tapping "leave the playroom" does completely nothing, or this button might not be even present, and the overal browser interface is even slower than with a new phone (remember that the web client on android may get very laggy as the history accumulates). So you might easily end up with with several minutes ban.
And that's only when you are watching it for the whole time and know exactly what you should and shouldn't do - the spam of connection attempts makes it difficult to read the individual error messages (I had to disconned the phone from internet to be able to read what the hell is written there, after that the connection attempts at least got much slower and eventually stopped). So at certain point I ended up being banned for more than an hour, since after several minutes I tried again to see if it's already unbanned and that alone sent again a load of connection attempts. And I have a feeling that many people open the second client accidentally.

So again, as a temporary solution it works, but I hope something better will come soon.

Pontuação: +1

Última edição por No-Time-no-Musume, Apr 18 2022 14:06:57

4. Naday,

So I also got this message when trying to reconnect. Note that it happened due to bad net here and thus, it happened due to the lag. Which could not be nice for many people actually, since it would just kick us from everywhere and even worse with the already existing bug that I have been mentioning a lot in the other topic: Trop de reconnexions / Too many reconnections
Veuillez patienter quelques instants avant de vous reconnecter / Please wait a while before reconnecting.

Pontuação: +0

5. Nikola,

Hello Aminiel,
I think you misunderstood something.
When someone is trying to connect from the Windows client without closing the web client first, this is not because they want to play from 2 devices at the same time, at least that is definitely not the case for me and this was never possible, no matter which version. The reason for this is, let's imagine you are playing a game on your phone. A little later, you have decided to switch to your PC. Before the update of 1st of April, the safest thing to do was just to open the Windows client and log in. This would first reconnect you to the same table using the Windows client, and finally disconnect you from the web client and close the page. Everything worked safely here and there was no auto reconnect. From this point you could just continue playing normally on the Windows client.
However, after this major update, what happens instead is the Windows client reconnects, but the web client for some reason attempts to reconnect again and it does so, which later gives a protocol error in the Windows client and finally in the last step you are also back in the main room on the web client. This last step should, if possible, be avoided. If I login from another device, the web client shouldn't attempt to reconnect again.

If it isn't possible, maybe it wouldn't be a bad idea to go back to the old pre 2018 Web client behaviour. By this I mean that on the web client there was no auto reconnection at all, when you disconnected you were just notified that the connection was lost, and if you wanted to, there was a reconnect button allowing you to reconnect again. This would simply allow you to avoid reconnecting if you have already logged in from another device. In addition to fixing this bug, it would prevent this to be honest quite annoying history spam. If the web client is down, or if for some reason it can't establish a connection, it keeps trying in a loop, and in the history you keep getting messages like:
Connecting: play.qcsalon.net:80
disconnected
and this keeps happening until you close the page.

Moreover, in this last update, this behaviour also caused an oversight. The problem is that there is a difference in behaviour between the Windows client and the web client. If I keep reconnecting too many times on the Windows client, I get a dialog that tells me to wait before reconnecting again. This is completely fine, I can just press the ok button, the client closes and I wait for this timer to expire. However, on the web client, this isn't like that at all. I get a message in the history to wait before reconnecting, but the problem is that the web client keeps trying to reconnect over and over despite this fact and probably keeps extending this timer. In addition, if you aren't very good with screen readers, you probably won't even be able to see this message in the history, simply because it keeps being interrupted and you won't even know you should close the web client and wait.
It keeps being interrupted because the web client keeps printing things like, disconnected. Connecting: play.qcsalon.net:80, and so on.
In a way you are in an infinite loop and if you don't realize it and close the web client fast enough, the ban will be much longer.

Finally, the reason for doing this and not just closing the web client and connecting normally from the Windows client is because if you close your browser, you are going to leave the Playroom and thus your table where a game was being played as well.
Moreover I think kicking people on reconnections like this is quite aggressive and will cause a lot of false positives, especially for people with less stable Internet connections.

Sorry for a longer post, but I hope things are more clear now and you can realize where the problem is. The key thing is the automatic reconnection on the web client, which happens even if normally a dialog should be displayed, like incorrect credentials, ban message, or in this case auto reconnection kick message. You can't read it because the web client keeps trying to reconnect despite there being an error.

Thanks.

Pontuação: +1

6. Aminiel,

Hello,

Thank you very much for your explanations, it clarifies well the situation.

I have changed two things this evening, please tell me if it's better or worse.

  • I have increased the reconnect delay of the web client to 3.5 seconds
  • Normally when you are banned or something, it shouldn't attempt to reconnect again until you refresh the page

This is only a temporary fix, especially the first one.

In fact, I think I should give an option to enable or disable auto-reconnect. Those who are used to play exclusively on their mac or their phone will certainly enable it, while those who are used to switch more or less frequently between several devices will probably be safer by disabling it.

What do you think ? Have you a better idea ?

By the way, when you quit the web client by closing the page, normally, you should be able to safely launch the windows client and be back at your table. I have broken this just after the big update, but now it should work again. Bonus question: should I consider allowing the opposite, too ? i.e. Alt+F4 the windows client wouldn't make you leave your table immediately. This would require a client update.

Pontuação: +1

Última edição por Aminiel, Apr 18 2022 21:04:01

7. Nikola,

Hello,
I just tested the changes, and for me, this is really good now.
Exactly as you said, when dialogs of this type appear, the web client no longer attempts to reconnect repeatedly. The auto reconnect delay is good too and makes the history more readable so you can understand what is going on.
I think as you said introducing an option to enable / disable auto reconnect is a really good idea as well. I can't say if it will improve the situation for switching devices, because that is impossible to test at this time since if I attempt to switch from the web client to the Windows client, they still fight for reconnection and I get kicked due to flooding, but now since you fixed the bug of closing the browser kicking you out of the Playroom, this is completely unnecessary.
In fact, the best scenario if you want to switch your device successfully is indeed now to just close the browser and open the Windows client, and then log in. This works perfectly. I have just tried switching from my Mac / Safari to the Windows client during a game in progress, and this worked without any issues and I was back on the table as expected.

For Windows client, I'll let others comment. I personally don't need such an option since if I want to switch from the Windows client to the web client, it's enough to close the Windows client from the task manager which won't let it leave the table / Playroom, and then just reconnect on the web. This second option works great as well, but perhaps not everyone will realize this is possible / talking about less advanced users here. At the same time, if you end up doing this I think you should certainly somehow make it optional, since many people just press alt f4 to leave the Playroom and expect to be completely offline when doing so.

Thanks once again for your quick and timely fixes.

Pontuação: +1

8. Marina,

Hello,

I would like to add that there is now a big flaw in this system for honest people, for most of us, when you disconnect normally due to internet or any reason, you still reconnect to the table first, then it kicks you out of the playroom and reconnects you again.
That way it counts it as double reconnections and so it shows the new automatic ban message. I suggest making it if there are more than 10 reconnection attempts within 2 minutes and then your timor resets to avoid banning honest people for too long. (for many people that would be 5 attempts in real not 10).

Pontuação: +1

9. Marina,

Wow, thank you for todays update, everything seem to be working great now after this last reboot.
I no longer get kicked from the table even when switching connections, and I hope it's the same for everyone else.

Pontuação: +1

10. Nikola,

Hello,
indeed, now for me every situation I tested is perfect as well.
Even switching from one client to another without closing the first one works perfectly and you are never kicked from your current table.
Great work!

Pontuação: +1

11. Naday,

Hello, I again got this error, even if I did not connect multiple times. Since yesterday I have been getting the error as soon as I connect to the playroom. Usually I connect again and it's all fine, but I decided to report it now because I got it once after the other, then I could finally reconnect. Now as the problem with the multiple connections was solved and we only reconnect instead of leaving playroom totally, I honestly think the feature leading to this error is unnecesary:
Error dialog Trop de reconnexions / Too many reconnections
Veuillez patienter quelques instants avant de vous reconnecter / Please wait a while before reconnecting.

Pontuação: +0

11 Mensagens, 1 Páginas:  1 ↖ Voltar a lista de tópicos

Responder ao tópico

Você deve estar conectado para poder postar.

Esqueceu sua senha? Criar uma conta