Added session cleanup and basic disconnection handling.

This commit is contained in:
bluesaxman 2020-09-22 16:43:08 -06:00
parent e8041c7383
commit c90662791e

View File

@ -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}}); }
}
);
}