Modifications for first live test
This commit is contained in:
parent
c90662791e
commit
0ea82ff1f8
@ -3,6 +3,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use POSIX;
|
use POSIX;
|
||||||
use Net::WebSocket::Server;
|
use Net::WebSocket::Server;
|
||||||
|
use IO::Socket::SSL;
|
||||||
use JSON;
|
use JSON;
|
||||||
|
|
||||||
use Data::Dumper; # For debuging only, REMOVE WHEN INITIAL CODE IS FINISH
|
use Data::Dumper; # For debuging only, REMOVE WHEN INITIAL CODE IS FINISH
|
||||||
@ -14,7 +15,7 @@ my %sessions = ();
|
|||||||
sub generateSession {
|
sub generateSession {
|
||||||
my $newSession = shift;
|
my $newSession = shift;
|
||||||
unless (defined $newSession) { my $uniquifyer = sprintf("%.0f",rand()*1000); $newSession = time.$uniquifyer; }
|
unless (defined $newSession) { my $uniquifyer = sprintf("%.0f",rand()*1000); $newSession = time.$uniquifyer; }
|
||||||
if ( grep( /$newSession/, keys %sessions ) ) {
|
if ( grep( /^$newSession$/, keys %sessions ) ) {
|
||||||
return 0 #failur to create session
|
return 0 #failur to create session
|
||||||
} else {
|
} else {
|
||||||
print "Adding session ".$newSession." to database\n";
|
print "Adding session ".$newSession." to database\n";
|
||||||
@ -264,7 +265,7 @@ sub normalizeSession {
|
|||||||
|
|
||||||
#########################Server Logic below##############################
|
#########################Server Logic below##############################
|
||||||
|
|
||||||
my $origin = 'ws://localhost';
|
my $origin = 'ws://test.murkfall.net';
|
||||||
|
|
||||||
sub joinSession {
|
sub joinSession {
|
||||||
my ($sessionID, $userID) = @_;
|
my ($sessionID, $userID) = @_;
|
||||||
@ -284,8 +285,18 @@ sub joinSession {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $ssl_conn = IO::Socket::SSL->new(
|
||||||
|
Listen => 5,
|
||||||
|
LocalPort => 42024,
|
||||||
|
Proto => 'tcp',
|
||||||
|
# ssl.ca-file = "/etc/letsencrypt/live/murkfall.net/chain.pem"
|
||||||
|
SSL_cert_file=> "/etc/letsencrypt/live/murkfall.net/fullchain.pem",
|
||||||
|
SSL_key_file=> "/etc/letsencrypt/live/murkfall.net/privkey.pem"
|
||||||
|
);
|
||||||
|
|
||||||
my $server = Net::WebSocket::Server->new(
|
my $server = Net::WebSocket::Server->new(
|
||||||
listen => 8080,
|
listen => $ssl_conn,
|
||||||
|
|
||||||
on_connect => sub {
|
on_connect => sub {
|
||||||
my ($serv, $conn) = @_;
|
my ($serv, $conn) = @_;
|
||||||
$conn->on(
|
$conn->on(
|
||||||
@ -316,7 +327,9 @@ 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 ($messageData->{action} =~ /join/ ) { if (joinSession($conn->{session},$conn->{user})) { $conn->send_utf8('{"info":"join success", "request":"update"}'); } }
|
if ($messageData->{action} =~ /join/ ) {
|
||||||
|
if (joinSession($conn->{session},$conn->{user})) { $conn->send_utf8('{"info":"join success", "request":"update"}');
|
||||||
|
} else { $conn->send_utf8('{"error":201,"message":"could not create session","request":"session"}') } }
|
||||||
if ($messageData->{action} =~ /update/ ) { my $sessionID = $conn->{session}; normalizeSession($conn->{session}); for ($conn->server->connections) { if ($_->{session} == $conn->{session}) {
|
if ($messageData->{action} =~ /update/ ) { my $sessionID = $conn->{session}; normalizeSession($conn->{session}); for ($conn->server->connections) { if ($_->{session} == $conn->{session}) {
|
||||||
#This might be a lot to do at once, might need to break it up in the future.
|
#This might be a lot to do at once, might need to break it up in the future.
|
||||||
# Update all connections joined to this session.
|
# Update all connections joined to this session.
|
||||||
@ -447,14 +460,4 @@ print $count."\n";
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
my $ses = generateSession(50);
|
|
||||||
addDeck($ses,"default");
|
|
||||||
my @tCards = generateDeck('[{"data":["Male ","Female "]},{"data":["Ardvark ","Platipus ","Cat "]},{"data":["Jumping","Falling","Flying"]}]');
|
|
||||||
addCards($ses,"default",\@tCards);
|
|
||||||
addPool($ses,"default");
|
|
||||||
addUser($ses,"Sergiy");
|
|
||||||
drawCard($ses,"default","Sergiy","default");
|
|
||||||
drawCard($ses,"default","Sergiy","default");
|
|
||||||
playCard($ses,"Sergiy","default",0,"default");
|
|
||||||
|
|
||||||
$server->start;
|
$server->start;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
window.server = "ws://localhost:8080/";
|
window.server = "wss://test.murkfall.net:42024/";
|
||||||
window.gameState = {};
|
window.gameState = {};
|
||||||
window.gameState.users = [];
|
window.gameState.users = [];
|
||||||
window.gameState.decks = [];
|
window.gameState.decks = [];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user