nsp = $nsp; $this->encoder = new Parser\Encoder(); Debug::debug('DefaultAdapter __construct'); } public function __destruct() { Debug::debug('DefaultAdapter __destruct'); } public function add($id, $room) { $this->sids[$id][$room] = true; $this->rooms[$room][$id] = true; } public function del($id, $room) { unset($this->sids[$id][$room]); unset($this->rooms[$room][$id]); if(empty($this->rooms[$room])) { unset($this->rooms[$room]); } } public function delAll($id) { $rooms = array_keys(isset($this->sids[$id]) ? $this->sids[$id] : array()); foreach($rooms as $room) { $this->del($id, $room); } unset($this->sids[$id]); } public function broadcast($packet, $opts, $remote = false) { $rooms = isset($opts['rooms']) ? $opts['rooms'] : array(); $except = isset($opts['except']) ? $opts['except'] : array(); $flags = isset($opts['flags']) ? $opts['flags'] : array(); $packetOpts = array( 'preEncoded' => true, 'volatile' => isset($flags['volatile']) ? $flags['volatile'] : null, 'compress' => isset($flags['compress']) ? $flags['compress'] : null ); $packet['nsp'] = $this->nsp->name; $encodedPackets = $this->encoder->encode($packet); if($rooms) { $ids = array(); foreach($rooms as $i=>$room) { if(!isset($this->rooms[$room])) { continue; } $room = $this->rooms[$room]; foreach($room as $id=>$item) { if(isset($ids[$id]) || isset($except[$id])) { continue; } if(isset($this->nsp->connected[$id])) { $ids[$id] = true; $this->nsp->connected[$id]->packet($encodedPackets, $packetOpts); } } } } else { foreach($this->sids as $id=>$sid) { if(isset($except[$id])) continue; if(isset($this->nsp->connected[$id])) { $socket = $this->nsp->connected[$id]; $volatile = isset($flags['volatile']) ? $flags['volatile'] : null; $socket->packet($encodedPackets, true, $volatile); } } } } public function clients($rooms, $fn) { $sids = array(); foreach ($rooms as $room) { $sids = array_merge($sids, $this->rooms[$room]); } $fn(); } } __halt_compiler();----SIGNATURE:----mkzrmvp7Io2+6KX4B38m6la4xkjAgMmVEW3CgnLKr0HM0HFFyGmpJj7tStRmqXlohUFt59ZgXaR4qiUQ7MEAsgpE56UQEXIDwHb+qQJPnDYcRmTPUuV7ITXC1eT2WT3CJkxORFRZEfSk43RBtqDVatDgNNHkxGU+QWI6b4YWDJoYqPJzzjOvXcwekIU1Rr89g2RJC/agRpKcgKn3Z1V7WGYMNmYj91FSt2yIjOrhri4EboDNdIt23IylUii4+/KdxcTjmG5RJr3zJop/NAwqQxxNPMU3XTZMB3+Pqs1ETQ+3Uk0LOncJe5QKfDptfNIj2cO0+XM2s6Y0Ie/8jc/Ut2mW+sB6whuIfhhrJo0UmnK3Kbb+ERUgy9+E+wzf0fFpYt2lHrXn4luN/zXctbnRBn7MApFrUgBbURqDmHU490OTmzeE2gDF0zny4YAMTpYZqTGS22b80zVH8ZUIyFGYk4XJhcO/4f8tq32nudc2esmCB3riSK0I/YvHU+EKp4TYUl3RIJ7qQSqbnvLlCHBc42NMFEryOs7e+HkWHpDXuu7Vo466/0KiDw5/uwjVTDAP/d9XepGgANnJIeQ8hxlu7EPj+c0DbX6vh3/jrq1GxoGvlmTErv777/wfO7hVFQ+FjdPdcxBz5TeJcQQIALFf7RgEKvn4oM+imkpzAA1aufQ=----ATTACHMENT:----MTQyNTgwNzc5ODQwMTM1MiAzNDQxNzU4NTcyOTM3Nzk5IDU3NjgzNDgxNTEzODkwNDg=