我在美尔库尔和薇的问题上有些困难。我想从vue订阅我的合并主题,但我仍然得到401错误。
我正在以码头形象来运行我的人鱼:
sudo docker run \
-e MERCURE_PUBLISHER_JWT_KEY='!ChangeMe!' \
-e MERCURE_SUBSCRIBER_JWT_KEY='!ChangeMe!' \
-e ALLOW_ANONYMOUS=1 \
-p 1337:80 \
-p 1338:443 \
dunglas/mercure还有我的symfony出版社:
class PublishController extends AbstractController
{
/**
* @param HubInterface $hub
* @return Response
* @Route("/push",name="/push")
*/
public function publish(HubInterface $hub): Response
{
$update = new Update(
'/chat',
json_encode(['message' => "mercure push"]),
);
$hub->publish($update);
return new Response('published!');
}
}我在Vue的那一部分尝试订阅:
document.addEventListener('DOMContentLoaded',function(){
let url =new URL(https://localhost:1338/.well-known/mercure)
url.searchParams.append('topic','/chat');
const eventSource = new EventSource(url);
eventSource.onmessage = (event) =>{
console.log(event)
}
})错误代码:

但是,当我将通过链接进入/push端点时,我将从后端im获取一些数据

我的猜测是,我有问题,但老实说,我失去了,我不知道我应该在哪里寻找线索感谢任何帮助!
发布于 2022-06-05 10:45:33
我解决了问题。它不起作用的原因有两个:
我在Vue中向我的https://www.npmjs.com/package/event-source-polyfill
EventSource添加了这两件事解决了我的问题,还是谢谢你的回答
发布于 2022-06-03 02:10:15
您需要将update设置为私有,将第三个参数设置为true:
$update = new Update(
'/chat',
json_encode(['message' => "mercure push"]),
true
);和,ALLOW_ANONYMOUS=0或删除它从凯蒂参数
https://stackoverflow.com/questions/72448774
复制相似问题