Angular Universal/SSR --> ERROR TypeError: ActionCable.WebSocket is not a constructor

Angular Universal/SSR --> ERROR TypeError: ActionCable.WebSocket is not a constructor

在服务器端使用 rails 作为前端的 Web 套接字使用 Actioncable js,其他一切工作正常,在执行 Angular SSR 时,它构建完美。 但是当我点击 url 它说

ERROR TypeError: ActionCable.WebSocket is not a constructor

我已经完成了:(与任何全局一样)。WebSocket = require('ws');并安装了 ws

back-end 应配置为:

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

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

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

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