Tag Archives: node.js

AWS (Amazon Web Services) walk through to install a Node.js app with a database

Hey guys!, that’s my experience creating a node.js app inside AWS (Amazon Web Services), that access a database MySql, the first that you have to do is to create a account to AWS (1 year free for most of the services), then, go to Elastic Beanstalk and create one node.js web server:

aws1

you can folow the instructions at the page is really simple, I was created a startup node.js app, that includes this files:

aws2

this sample files instruct us how to adapt your app.js file, as you can see in this standard file:

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Read More ...

Multiplayer Online Game

Introduction:

I was develop one multiplayer online game “pairs game” with a node.js server , the purpose of this development is to test node.js powerfull features and asyncronous programming techniques.

this project does not uses socket.io (that is the best option to develop whit node.js) becose the “logic” of the game is very simple and with ajax long poll technique is enough to acomplish the goal. The engine of the game works with memory variables( no mysql calls)  and is very fast!!, is a multi game/player server,

About the html of the page, is only one HTML file with his CSS and JS files, all the elements are stored in memory at first load page, after all is done directly with ajax calls (if you press F5 the game restarts)

The engine of the game incorporates one control that checks the origin of the url  for each ajax call, to prevent using the engine to another not autorized sites.

general shema:

The logic is very simple:

  • one user creates one game ( private or public)
  • another user joins to this game.
  • another user joins to this game
  • … (max 4)
  • only the user that creates the game can start de game.
  • the user that have the turn, have 15 seconds to move one chart, if the time expires, then the turn goes to the next user
  • Every movement is distributed to all the users of the game.
  • when one change is done at the game (  2 open cards, and pairs match or not match) , all users that are playing are notified, scoreboard are updated
  • the users that wins the game, is automatically added or updated (+) his general score ( visible at main site)

On the client’s side, a long poll call is done recursively, until game is finished.

If you want to test multiplayer features or view a demo, you can simulate 2 users open 2 browser sessions, or with your friends, enjoy it:   http://fyp.colome.org

this video demostrates the multiplayer features: https://www.youtube.com/watch?v=TzJ2n7D_hxU

 

If you want to send me a feedback or you like to add this game in your site (fully css customizable), and view only your active games and your global scorelist, I can authorize your domain,  contact me: colome.disco@gmail.com

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Read More ...

GET or POST variables in node.js server

An esay way to accept GET or POST variables on a node.js server is the sample show below:

var fu = require("./fu"),
sys = require("util"),
url = require("url"),
qs = require("querystring");
var nodemailer = require('nodemailer');

fu.get("/entrar", function (req, res) {
   // ------ condition to chech if call are POST o GET
   if(req.method=="POST") {
      var body="";
      req.on("data", function (data) {
        body +=data;
      });
      req.on("end",function(){
         var variables =  qs.parse(body);
         var pathname = url.parse(req.url).pathname;
         //rest of code - this function is executed when all the variables are received

      });
      req.on("error",function(e){
         //console.log('problem with request: ' + e.message);
      });
   }
   else if(req.method=="GET") {
      var variables = url.parse(req.url, true).query;
      var pathname = url.parse(req.url).pathname;
      //rest of code - We have no wait variables like POST request
   }

   // end condition post o get
   return ;//"ok:
});

In this case this funcion works with POST and GEt request, on the GET request case, there is no problem to get the variables with the function: url.parse(req.url, true).query;

as you can see, the trick in a POST request is  the instruction: req.on( when the variables “POST” are fully recived , then req.on(“end”,function(){}) are executed.

remember that node.js is an asyncronous envirovment and the function req.on is executed after main function end.

my latest development using node.js and socket.io (Multiplayer Online Charts game): http://mp.colome.org

 

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Read More ...