Angular 通用服务器呈现 WebSocket
Angular Universal server rendering WebSocket
是否有 Angular 通用 WebSocket 的示例?
服务器端渲染不知道 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';
然后在您的代码中使用它们,这也许可以解决问题![=12=]
@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----");
}
}
}
是否有 Angular 通用 WebSocket 的示例?
服务器端渲染不知道 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';
然后在您的代码中使用它们,这也许可以解决问题![=12=]
@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----");
}
}
}