mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-07-14 11:40:10 +00:00
75 lines
1.2 KiB
JavaScript
75 lines
1.2 KiB
JavaScript
'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
|
|
};
|