| 
<?php
 use App\Socket\Response;
 use Colors\Color;
 use Evenement\EventEmitter;
 use Ratchet\ConnectionInterface;
 
 require 'generalHelperFunctions.php';
 
 /**
 * Send message to client
 * @param ConnectionInterface $client
 * @return Response
 */
 function resp(ConnectionInterface $client)
 {
 return new Response($client);
 }
 
 $clients = new SplObjectStorage;
 /**
 * All clients are stored here
 * @return SplObjectStorage
 */
 function clientStorage()
 {
 global $clients;
 return $clients;
 }
 
 $chatClients = new ArrayObject();
 /**
 * Clients that joined chat rooms
 * @param null $client
 * @param null $data
 * @return ArrayObject
 */
 function chatClients($client = null, $data = null)
 {
 global $chatClients;
 
 if ($client) {
 $chatClients[$client->resourceId] = $data;
 }
 return $chatClients;
 }
 
 /**
 * All created chat rooms
 * @param null $room
 * @param null $setValue
 * @return array|splObjectStorage
 */
 function chatRooms($room = null, $setValue = null)
 {
 static $chatRooms = [];
 
 if (!isset($chatRooms[$room])) {
 $chatRooms[$room] = [];
 }
 
 if ($setValue) {
 $chatRooms[$room][] = $setValue;
 }
 
 return $room ? $chatRooms[$room] : $chatRooms;
 }
 |