NOT IN A FINISHED STATE, added half of the update command to the websocket server
This commit is contained in:
parent
c6944c8667
commit
a4758c5ea2
@ -93,11 +93,13 @@ sub shuffleHand {
|
|||||||
|
|
||||||
sub addUser {
|
sub addUser {
|
||||||
my ($sessionID,$userID) = @_;
|
my ($sessionID,$userID) = @_;
|
||||||
|
if (grep( /$userID/, keys $sessions{$sessionID}{"users"})) { print "ERROR: Duplicate user\n"; return 0; }
|
||||||
$sessions{$sessionID}{"users"}{$userID} = {
|
$sessions{$sessionID}{"users"}{$userID} = {
|
||||||
name => "$userID",
|
name => "$userID",
|
||||||
hands => {}
|
hands => {}
|
||||||
};
|
};
|
||||||
addHand($sessionID,$userID,"default");
|
addHand($sessionID,$userID,"default");
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub addCards {
|
sub addCards {
|
||||||
@ -271,7 +273,9 @@ sub joinSession {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
addUser($sessionID,$userID);
|
unless (addUser($sessionID,$userID)) {
|
||||||
|
#assume rejoining user
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,6 +302,7 @@ my $server = Net::WebSocket::Server->new(
|
|||||||
|
|
||||||
if (defined($messageData->{user})) {
|
if (defined($messageData->{user})) {
|
||||||
$conn->{user} = $messageData->{user};
|
$conn->{user} = $messageData->{user};
|
||||||
|
# Need to check if userID is unique
|
||||||
$conn->send_utf8('{"info":"user success"}');
|
$conn->send_utf8('{"info":"user success"}');
|
||||||
}
|
}
|
||||||
if (defined($messageData->{session})) {
|
if (defined($messageData->{session})) {
|
||||||
@ -306,7 +311,36 @@ my $server = Net::WebSocket::Server->new(
|
|||||||
$conn->send_utf8('{"info":"session success", "request":"join"}');
|
$conn->send_utf8('{"info":"session success", "request":"join"}');
|
||||||
}
|
}
|
||||||
if (defined($messageData->{action})) {
|
if (defined($messageData->{action})) {
|
||||||
if ("join" == $messageData->{action}) { if (joinSession($conn->{session},$conn->{user})) { $conn->send_utf8('{"info":"join success"}'); } }
|
if ("join" == $messageData->{action}) { if (joinSession($conn->{session},$conn->{user})) { $conn->send_utf8('{"info":"join success", "request":"update"}'); } }
|
||||||
|
my $sessionID = $conn->{session};
|
||||||
|
if ("update" == $messageData->{action}) { for ($conn->server->connections) { if ($_->{session} == $conn->{session}) {
|
||||||
|
# Update all connections joined to this session.
|
||||||
|
# User List
|
||||||
|
my @users = getUsers($sessionID);
|
||||||
|
my @userNames = [];
|
||||||
|
for (@users) {
|
||||||
|
push(@userNames,getUserName($sessionID,$_);
|
||||||
|
}
|
||||||
|
$_->send_utf8('{"users":['.join(",",getUsers(@userNames)).']}');
|
||||||
|
# Deck List
|
||||||
|
my @decks = getDecks($sessionID);
|
||||||
|
my %deckStats = {};
|
||||||
|
for (@decks) {
|
||||||
|
$deckStats{$_} = getDeckSize($sessionID,$_);
|
||||||
|
}
|
||||||
|
$_->send_utf8('{"decks":'.to_json().'}');
|
||||||
|
# Each decks count
|
||||||
|
$_->send_utf8('{}');
|
||||||
|
# Pool List
|
||||||
|
$_->send_utf8('{}');
|
||||||
|
# Top card in each pool
|
||||||
|
$_->send_utf8('{}');
|
||||||
|
# Users Hands
|
||||||
|
$_->send_utf8('{}');
|
||||||
|
# for each hand
|
||||||
|
# each card (so we scale better)
|
||||||
|
$_->send_utf8('{}');
|
||||||
|
}}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
disconnect => sub {
|
disconnect => sub {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user