Added session cleanup and basic disconnection handling.
This commit is contained in:
parent
e8041c7383
commit
c90662791e
@ -432,6 +432,16 @@ my $server = Net::WebSocket::Server->new(
|
|||||||
},
|
},
|
||||||
disconnect => sub {
|
disconnect => sub {
|
||||||
my ($conn, $code, $reason) = @_;
|
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}}); }
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user