Symfony 5 / Mercure> Приватное обновление. Получить CORS - PullRequest
1 голос
/ 02 августа 2020

Я пытаюсь интегрировать Mercure в проект symfony 5. И есть две проблемы.

  1. Я пытаюсь отправить обновление в частное, но это не работает, но если попытаться отправить в частный, все работает.

Команда, которая запустите mercure:

./bin/mercure --jwt-key='homesphere_secret_token' --addr='localhost:3000' --allow-anonymous --cors-allowed-origins='*'

.env файл

MERCURE_PUBLISH_URL=http://localhost:3000/.well-known/mercure
MERCURE_JWT_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXJjdXJlIjp7InB1Ymxpc2giOlsiKiJdfX0.P0f5r123SLTru4DiE4X9q0EIoKahds-nI8jpo8uKKQQ
MERCURE_SECRET_KEY=homesphere_secret_token

Backend, который выдает URL-адрес и токен jwt

    $user = $this->getUser();

    $hubUrl = $this->getParameter('mercure.default_hub');
    $link = new Link('mercure', $hubUrl);

    $token = JWT::encode([
        'mercure' => [
            'publish' => [sprintf("/chat/%s", $user->getId())],
        ],
    ], $this->getParameter('mercure_secret_key'));

Код обновления

    $message = $serializer
        ->serialize(['message' => $message], 'json');
    $update = new Update(
        sprintf("/chat/%s", $user->getId()),
        $message,
        true // if false then work
    );
    $publisher($update);

Frontend часть

const hub = new URL('http://localhost:3000/.well-known/mercure');
hub.searchParams.append('topic', '/chat/1');
const eventSource = new EventSourcePolyfill(hub.href, {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZXJjdXJlIjp7InB1Ymxpc2giOlsiXC9jaGF0XC8xIl19fQ.yg3DodPjaPzWVIOhKMo30xXzS3L4oPckbL9pcA4tMck'
});
eventSource.onmessage = event => {
  console.log(JSON.parse(event.data));
}
Когда интерфейс получает сообщение об обновлении, тогда следующие запросы начинают расти Проблема CORS изображение

Кто-нибудь может мне помочь с этим, пожалуйста?

...