有没有带WebSockets的Angular Universal示例?
服务器端渲染不知道在我的情况下是不是一个WebSocket对象。如果我使用socket.io,则尝试建立连接时节点服务器将挂起。
有关该问题的一些其他信息:
我从github下载了angular-universal- starter:https://github.com/angular/universal- starter, 它在运行’npm install’和’npm start’时开箱即用
但是在我将以下代码添加到AppComponent之后
export class AppComponent implements OnInit { ngOnInit() { let webSocket = new WebSocket("----server url----") } }
我的NodeJs服务器控制台出现以下错误:
EXCEPTION: WebSocket is not defined ORIGINAL STACKTRACE: ReferenceError: WebSocket is not defined at AppComponent.ngOnInit (/Volumes/Development/cacadu/website/universal-starter-master2/dist /server/index.js:41725:29)
尝试仅在客户端上调用websocket,例如,您可以检测是这些导入的浏览器还是服务器
import { isPlatformBrowser } from '@angular/common'; import { Inject, PLATFORM_ID } from '@angular/core';
然后在您的代码中使用它们,这也许可以解决问题!
@Component({ ... }) export class AppComponent implements OnInit { private isBrowser: boolean = isPlatformBrowser(this.platformId); constructor( @Inject(PLATFORM_ID) private platformId: Object ) { if (isBrowser) { let webSocket = new WebSocket("----server url----"); } } }