问题标签 [mercure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony4 - 如何在 Symfony 项目中安装 Mercure?
我正在尝试在我的本地环境中实施 Symfony Mercure。我正在关注官方文档https://symfony.com/doc/current/mercure.html
因此,我从链接下载了二进制文件https://github.com/dunglas/mercure/releases/tag/v0.11.3
从下载中,我将 mercure & CaddyFile.dev 复制到 symfony bin 文件夹,然后执行以下行:
但我越来越bash: ./bin/mercure: cannot execute binary file: Exec format error
晚了我改成
这让我返回错误run: loading initial config: loading new config: http app module: start: tcp: listening on :443: listen tcp :443: bind: permission denied
任何人都可以实现它。请帮忙。
谢谢。
php - 使用 Mercure Hub 的问题
我的 UAT 环境中的 NotificationService 存在一些问题,但奇怪的是,这在我的本地服务器上运行良好。
$ php7 bin/控制台缓存:清除
在 DefinitionErrorExceptionPass.php 第 54 行:
无法自动连接服务“App\Service\NotificationService”:方法“__construct()”的参数“$hub”引用接口“Symfony\Component\Mercure\HubInterface”,但不存在此类服务。您是否创建了实现此接口的类?
symfony/mercure 包提供了实现该接口的 HubInterface 和 Hub 类。我刚刚在 UAT 服务器上重置了项目,这个错误一直在抛出。我的 Symfony 项目是最新的 (v5.2.11) 和 mercure & mercure 包。
你知道缺少什么吗?
react-native - 如何使用 expo 通过 React Native 收听 Mercure 服务器?
我目前有一个使用 React Native 制作的移动应用程序以及一个使用 Symfony 制作的 API,这要归功于 API Platform。
两个应用程序之间的通信良好。
为了在应用程序上创建通知系统,我添加并配置了 Mercure 服务器。
但是,自添加 Mercure 以来,API 和应用程序之间似乎存在通信问题。
我想澄清一下,我通过 reactjs 中的 web 项目测试了完全相同的配置,并且我没有问题。
因此,我怀疑 Mercure 和应用程序之间存在访问问题。(我使用 expo 在本地测试我的应用程序)
这是我的 symfony .env 文件
这是用于启动 Mercure 服务器的命令
我正在使用 ngrok 通过我的移动应用程序联系我的 API。我还尝试在端口 3000 上运行 ngrok 以通过应用程序联系 Mercure,但我仍然遇到此错误:401 UnAuthorized。
这是我的js代码
我还指定 Symfony 在端口 8000 上启动,Mercure 在端口 3000 上启动。
提前致谢
symfony - 使用 SoftDeleatable 扩展时,Mercure 不会更新 DELETE 方法
对于一个项目,我使用 Api Platform 和Mercure。我目前对SoftDeleatable扩展有疑问。如果没有这个扩展,当我删除一个实体时,Mercure 会收到 DELETE。但是,如果我使用SoftDeleatable扩展,删除是正确的,但 Mercure 没有收到 DELETE。
代码实体:
刚刚添加了mercure=true来启用mercure
PS:我没有测试更改 DELETE 功能是否有效,但 SoftDeleatable 可以正常进行:/
vue.js - 带有 symfony 的美居不适用于 vue
我在使用 vue 的 symfony 下配置 mercure 时遇到问题。我正在使用附加在 symfony cli 中的美居集线器。在 .env 文件中,我将 Mercure url 更改为使用 http,因为它导致我的证书错误(由 symfony 包含)。
.env
当我通过在示例 http://localhost:8000 中打开 symfony 应用程序并在控制台中添加此脚本来测试它时:
它正在工作,我可以在其他选项卡中发布一些更改。但是当我做同样的事情但在我位于 http://localhost:8080 地址的 vue 应用程序中时,它会在控制台错误中显示我:
我还有两个问题:
- 为什么当我将 jwt 令牌粘贴到 env 中时出现 401 错误,但上面没有这个错误?
- 为什么我不能在 https 中使用 symfony 服务?我收到“TransportException: fopen(): Unable to locate certificate CN”错误
caddy - 美居 symfony 和 Caddy 服务器不工作
我已经在我的 CentOS 7 中安装了 Caddy,然后我下载了使用 Caddy 的最新 Mercure。我尝试使用以下命令运行mercure:
Caddyfile 具有以下配置:
我收到此错误:
2021/08/15 18:35:14.802 INFO 使用提供的配置 {"config_file": "Caddyfile", "config_adapter": ""} 运行:使用 caddyfile 调整配置:解析“路由”的 caddyfile 令牌:Caddyfile:34 - 错误解析期间:无法识别的指令:mercure
我不知道为什么它不承认mercure指令。我使用了提供的配置文件。请问有什么帮助吗?谢谢。
symfony - Mercure symfony Apiplateform
我有一个带有美居服务器和 API 平台包的 Symfony 应用程序。我的美居服务器使用 docker 运行:
我的服务美居到我的 docker-compose.yml
我的美居服务器工作http://127.0.0.1:8001/:
在网址http://127.0.0.1:8001/.well-known/mercure我有消息:
我的树枝模板中有一个简单的监听器。
我已经尝试过 Postman 和那项工作。
登录我的容器美居:
我已经安装了 ApiPlateform 和 Mercure 包
我有编辑 .env
我已经创建了一个带有参数标题的实体配方,并且我已经使用 mercure 选项添加了 ApiRessource 注释:
我创建了一个简单的表单来添加新食谱
当我提交时,使用 Doctrine 插入我的数据,但我收到一个错误:发送更新失败。
我有未经授权的错误,但我将 secret_jwt 配置到我的 .env 中
进入配置>包>mercure.yaml
我试过邮递员,我得到同样的错误
登录到我的容器美居
当 Symfony 想要更新中心美居时,我的问题出现了。当我在http://127.0.0.1:8000/api/recipes Doctrine 创建实体但 Mercure 无法更新集线器时 POST 。
我不明白为什么那行不通:/
感谢您的帮助。
编辑:问题解决了。如果您希望我创建了一个存储库:github.com/ThomasMouchelet/docker-apiplateform-mercure
ssl - 已安装 Caddy 服务器 SSL 但无法正常工作
我有一个用于运行 Caddy 服务器的 Caddy 配置文件。该文件如下:
服务器运行,我可以将其视为调试:
我的问题是,当我转到 http s://mydomain.com:4134 时,它显示 SSL 错误:
上面的调试显示已安装证书(2021/08/16 16:43:46.293 DEBUG tls.issuance.acme.acme_client 挑战接受)那么为什么加载它仍然存在问题?
谢谢。
heroku - 如何在 Heroku 上部署 Mercure Binary?
我正在尝试在 Heroku 应用程序上部署我的 Mercure 服务器,我下载了 Mercure 的 Linux 版本并将其解压缩,然后将其添加procfile
到其中:
我使用 Heroku git 推送了所有内容
但它不起作用,美居在大楼里失败了。我在文档中找不到任何教程或任何内容。
如何在 Heroku 上部署 Mercure 二进制文件?
symfony - Mercure/Symfony:使用 JWT 密钥的授权错误
我正在使用 symfony 二进制文件中的mercure。通过设置新项目后
我在新创建的控制器中编写了一些最少的代码:
然后,我从这里生成一个 JWT 密钥(链接自 symfony 文档)并!ChangeMe!
在右下角输入,因为这是 symfony 二进制文件使用的密钥。然后将 JWT 密钥设置为.env
:
重新启动服务器并转到 后localhost:8000
,我得到Failed to send an update.
and HTTP/2 401 returned for "https://localhost:8000/.well-known/mercure".
,这可能是因为密钥无法正常工作。服务器上的错误:MERCUR Topic selectors not matched, not provided or authorization error
通过设置MERCURE_JWT_SECRET="!ChangeMe!"
(不加密),如果站点是从运行服务器的机器访问的,但不是从同一网络中的其他机器访问(通过 192.168.XXX.XXX:8000),它确实有效。
我究竟做错了什么?