From c90662791ea267c474eadd0b084be2f9fd331882 Mon Sep 17 00:00:00 2001 From: bluesaxman Date: Tue, 22 Sep 2020 16:43:08 -0600 Subject: [PATCH] Added session cleanup and basic disconnection handling. --- Server/server.pl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Server/server.pl b/Server/server.pl index 1e7d54a..105faf3 100755 --- a/Server/server.pl +++ b/Server/server.pl @@ -432,6 +432,16 @@ my $server = Net::WebSocket::Server->new( }, disconnect => sub { my ($conn, $code, $reason) = @_; + print "A connection has been closed\n"; + print "The code: ".$code." was given, the reason given was: ".$reason."\n"; + if (4001 == $code) { + delUser($conn->{session},$conn->{user}); + unless (scalar getUsers($conn->{session})) { delete($sessions{$conn->{session}}); } + } + my $count = -1; # because for some reason the disconnecting session is counted. + for ($conn->server->connections) { if ($_->{session} == $conn->{session}) { $count++; print $_->{user}."\n"; }} +print $count."\n"; + unless ($count) { delete($sessions{$conn->{session}}); } } ); }