File size: 1,212 Bytes
5fae594 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
'use strict';
// delayed dependencies
var Room, allSockets;
/*
* bind
*
* - self (object) : the sender
* - obj (object) : what to add the methods to
* - [name] (string) : optional name for methods
*/
var bind = function bind (self) {
var obj = broadcast(self);
obj.to = broadcastTo(self);
return obj;
};
var detach = function (self, obj, name) {
};
/*
* Broadcast
*
* - event (string)
* - args... (mixed)
*/
var broadcast = function broadcast (self) {
return function broadcastClosure (event, arg1, arg2, arg3) {
allSockets.broadcast(self.id, event, arg1, arg2, arg3);
};
};
/*
* Broadcast.to
*
* - room (string)
*/
var broadcastTo = function broadcastTo (self) {
return function broadcastToClosure (room) {
room = Room.get(room);
return {
emit: function broadcastToEmit (event, arg1, arg2, arg3) {
room.broadcast(self.id, event, arg1, arg2, arg3);
}
};
};
};
/*
* (Private) Init
* Loads the room dependency
* Can only be run once.
*
* - room (Room) : room class
*/
var init = function init (_room) {
Room = _room;
allSockets = Room.get('all');
return module.exports;
};
module.exports = {
bind: bind,
init: init
};
|