0

我试图从这里https://github.com/dunglas/mercure/tree/master/examples/chat关注聊天实现。但到目前为止,我还没有成功实现这一目标。

对于 Mercure hub 实施,我构建了一个小型 docker compose :

version: '3.5'
services: 
    mercure:
        container_name: mercure
        image: dunglas/mercure
        environment:
            - JWT_KEY=!ChangeMe!
            - DEMO=1
            - ALLOW_ANONYMOUS=1
            - CORS_ALLOWED_ORIGINS=http://127.0.0.1:5000
            - PUBLISH_ALLOWED_ORIGINS=http://127.0.0.1:5000
        ports:
            - "3000:80"

并且发布消息似乎有效: 截屏

烧瓶方面,我没有修改原始存储库,我正在使用 pycharm 启动服务器(烧瓶运行):https://github.com/dunglas/mercure/tree/master/examples/chat 但是我在页面时收到此错误已加载: 在此处输入图像描述

如果我发布消息,我从美居得到 200,但没有烧瓶方面。我究竟做错了什么?谢谢

编辑:我发现问题出在我打电话的时候 在此处输入图像描述

Si 为什么我在尝试获取所有订阅者时得到 404?我错过了配置吗?

4

1 回答 1

0

我想到了 :

所以首先订阅 1 个问题

version: '3.5'
services: 
mercure:
    container_name: mercure
    image: dunglas/mercure
    environment:
        - JWT_KEY=!ChangeMe!
        - DEMO=1
        - ALLOW_ANONYMOUS=1
        - SUBSCRIPTIONS=1
        - CORS_ALLOWED_ORIGINS=http://127.0.0.1:5000
        - PUBLISH_ALLOWED_ORIGINS=http://127.0.0.1:5000
    ports:
        - "3000:80"

然后引用Doc

此外,所有端点必须在返回的 JSON-LD 文档的根处设置 lastEventID 属性:

lastEventID:在此请求时由集线器调度的最后一个事件的标识符(请参阅协调)。如果尚未分派任何事件,则该值必须是最早的。订阅订阅事件时,该属性的值应该传回集线器以防止数据丢失。>

  const subscribeURL = new URL(hubURL);
  subscribeURL.searchParams.append(
    "Last-Event-ID",
    subscriptionCollection.lastEventID
    );
于 2020-09-29T11:34:46.283 回答