. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\WebSocket; use Espo\Core\Utils\Log; use Espo\Core\Utils\Json; use stdClass; use Throwable; class Submission { public function __construct( private Sender $sender, private Log $log ) {} /** * Submit to a web-socket server. */ public function submit(string $topic, ?string $userId = null, ?stdClass $data = null): void { if (!$data) { $data = (object) []; } if ($userId) { $data->userId = $userId; } $data->topicId = $topic; $message = Json::encode($data); try { $this->sender->send($message); } catch (Throwable $e) { $this->log->error("WebSocketSubmission: " . $e->getMessage()); } } }