tags:

views:

47

answers:

2

In Android, intent action string is always prefixed with package name to avoid conflict. what is the pattern in node.js ?

A: 

Ok, I guess event is not broadcasted, it is a callback on certain object.

haijin
A: 

Event is not broadcasting but a msg delivered to destinated component.

argument_object = { method:'post', onComplete: function() { self.end() } }
dest_component.emit("event", argument_object);
dest_component.on('event', function(argument_object){ // }

//
// Event Architecture layer
//

  1. First, everything starts from a web sock
    var sock = io.listen()
    sock.on("connection", function(client) {
    client.on("message", function(msg) { (msg='join') new Player(client) }
    client.on("disconnect", function() { }
    }

  2. Each web sock client wrapped into a player, handle sock client msg with upper layer player's emit event.
    function Player(client) {
    client.on("message", this.handleMsg.bind(this);
    }
    Player.prototype.handleMsg = function(event) {
    this.emit('event', event, this);
    }

  3. Game contains a set of players. Player's event handler using upper layer Game's function.

    Game = module.exports.Game = function() { }
    Game.prototype.add = function(player) {
    player.on("event", this.notify.bind(this);
    }
    Game.prototype.notify = function(msg, eventsrc) {
    for(var player in players)
    player.send(encode(msg));
    }

haijin