Category 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:

Facebooktwitterredditpinterestlinkedinmail

Read More ...

Mega Pairs Game

game

Introduction:

This game a”pairs game” features multiplayer possibilities of Sockets.io, is was made only for show  the features and  architecture of a multiplayer development, not for real production game,it uses a Sing in feature to login with Facebook, Google o Twitter credentials ( no need to register), the base is a canvas control that is named “arena” of the game, and only a bar menu to make all tasks.

 technologies used:

this are the architecture components used to develop the game:

at the server side:

  • node.js server
  • sockets.io
  • sqlite database

at the client side:

  • Javascript
  • Mootools
  • Bootstrap
  • HybridAuth

 How it works:

The first time when a user opens the page, observe mode is enabled for default, in this mode you can see all the movements of the game, but you can not interact or flip any card. when the user are sing in, then a new user appears at the left side and the user can flip 2 cards, once the user are in the game his score is saved for the next time game.

Collaboration:

My next goal is that any user can modify the cards images, how to do it?:

To Test the Game

Facebooktwitterredditpinterestlinkedinmail

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

Facebooktwitterredditpinterestlinkedinmail

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

 

Facebooktwitterredditpinterestlinkedinmail

Read More ...

Categories

Subscribe to my Newsletter




By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close