1. Go to this page and download the library: Download tourze/socket-io-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use SocketIoBundle\Service\MessageService;
class NotificationService
{
public function __construct(
private MessageService $messageService
) {}
public function broadcastToRoom(string $roomName, string $event, array $data): void
{
$this->messageService->sendToRooms([$roomName], $event, $data);
}
}
use SocketIoBundle\Service\RoomService;
class CustomRoomService extends RoomService
{
public function joinRoom(Socket $socket, string $roomName): void
{
// Custom logic before joining
parent::joinRoom($socket, $roomName);
// Custom logic after joining
}
}
use SocketIoBundle\Service\DeliveryService;
use SocketIoBundle\Enum\MessageStatus;
class MyService
{
public function __construct(
private DeliveryService $deliveryService
) {}
public function checkDeliveryStatus(string $messageId): MessageStatus
{
return $this->deliveryService->getMessageStatus($messageId);
}
}
use SocketIoBundle\Repository\MessageRepository;
class MessageHistoryService
{
public function __construct(
private MessageRepository $messageRepository
) {}
public function getRoomHistory(string $roomName, int $limit = 50): array
{
return $this->messageRepository->findByRoomName($roomName, $limit);
}
}