mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-07-14 19:50:10 +00:00
54 lines
989 B
JavaScript
54 lines
989 B
JavaScript
'use strict';
|
|
|
|
|
|
var Broadcast = require('../source/broadcast');
|
|
var Room = require('../source/room');
|
|
var Namespace = require('../source/namespace');
|
|
|
|
var lastMessage = {};
|
|
var emitFn;
|
|
|
|
var Socket = function () {
|
|
this.id = ++Socket.id;
|
|
this.broadcast = Broadcast.bind(this);
|
|
Room.get('all')._join(this);
|
|
};
|
|
|
|
Socket.prototype.emit = function (event, a, b, c) {
|
|
lastMessage[this.id] = [event, a, b, c];
|
|
emitFn.apply(this, arguments);
|
|
};
|
|
|
|
Socket.prototype.namespace = function (name) {
|
|
return new Namespace(name, this);
|
|
};
|
|
|
|
Socket.prototype.last = function () {
|
|
return lastMessage[this.id];
|
|
};
|
|
|
|
Socket.prototype.join = function (room) {
|
|
Room.get(room)._join(this);
|
|
};
|
|
|
|
Socket.prototype.leave = function (room) {
|
|
Room.get(room)._leave(this);
|
|
};
|
|
|
|
Socket.id = 0;
|
|
|
|
Socket.listen = function (fn) {
|
|
emitFn = fn;
|
|
};
|
|
|
|
Socket.reset = function () {
|
|
lastMessage = {};
|
|
emitFn = function () {};
|
|
Room.flush();
|
|
Broadcast.init(Room);
|
|
};
|
|
|
|
Socket.reset();
|
|
|
|
module.exports = Socket;
|