Implemented writeAll and closeAll for groups
This commit is contained in:
		@@ -61,8 +61,20 @@ class ConnectionGroup implements EventEmitterInterface, IteratorAggregate, Count
 | 
			
		||||
        return $this->name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function write(string $payload)
 | 
			
		||||
    public function writeAll(string $payload)
 | 
			
		||||
    {
 | 
			
		||||
        
 | 
			
		||||
        foreach ($this->connections as $connection) {
 | 
			
		||||
            if ($connection->isWritable()) {
 | 
			
		||||
                $connection->write($payload);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function closeAll(string $reason, int $code=1001)
 | 
			
		||||
    {
 | 
			
		||||
        foreach ($this->connections as $connection) {
 | 
			
		||||
            $connection->closeWithReason($reason, $code);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -44,5 +44,11 @@ class GroupManager implements EventEmitterInterface
 | 
			
		||||
        return $group;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function closeAll(string $reason, int $code=1001)
 | 
			
		||||
    {
 | 
			
		||||
        foreach ($this->groups as $group) {
 | 
			
		||||
            $group->closeAll($reason, $code);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
@@ -252,8 +252,17 @@ class WebSocketConnection implements WebSocketInterface
 | 
			
		||||
     */
 | 
			
		||||
    public function close()
 | 
			
		||||
    {
 | 
			
		||||
        // TODO send close
 | 
			
		||||
        $this->outStream->close();
 | 
			
		||||
        $this->inStream->close();
 | 
			
		||||
        // TODO emit close event
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function closeWithReason(string $reason, int $code=1000)
 | 
			
		||||
    {
 | 
			
		||||
        // TODO send close
 | 
			
		||||
        $payload = chr(($code >> 8) & 0xFF) . chr($code & 0xFF) . $reason;
 | 
			
		||||
        $this->send(self::OP_CLOSE, $payload);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -23,4 +23,6 @@ interface WebSocketInterface extends ConnectionInterface
 | 
			
		||||
 | 
			
		||||
    public function getGroup(): ?ConnectionGroup;
 | 
			
		||||
 | 
			
		||||
    public function closeWithReason(string $reason, int $code=1000);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user