【问题标题】:Angular Universal/SSR --> ERROR TypeError: ActionCable.WebSocket is not a constructorAngular Universal/SSR --> ERROR TypeError: ActionCable.WebSocket 不是构造函数
【发布时间】:2020-08-07 14:06:01
【问题描述】:

在前端使用 Actioncable js 作为 web 套接字,在服务器端使用 rails,其他一切正常,在使用 Angular SSR 时,它可以完美构建。 但是当我点击一个网址时,它会说

ERROR TypeError: ActionCable.WebSocket is not a constructor

我已经完成了:(global as any).WebSocket = require('ws');并安装了ws

【问题讨论】:

    标签: ruby-on-rails angular server-side-rendering angular-universal actioncable


    【解决方案1】:

    后端应配置:

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/api/events").setAllowedOrigins("*");
    }
    

    【讨论】:

      【解决方案2】:

      我终于明白了! 在进行服务器端渲染时,我在页面到达浏览器之前连接到 websocket,因此无法建立连接。

      Angular 有一种检测平台浏览器https://angular.io/api/common/isPlatformBrowser的方法

      只是用来检测代码是否在浏览器中,然后进行socket连接。

      【讨论】:

        猜你喜欢
        • 2022-12-05
        • 2020-11-20
        • 2023-02-01
        • 2019-08-14
        • 1970-01-01
        • 2018-06-27
        • 2016-04-16
        相关资源
        最近更新 更多