gpt4 book ai didi

node.js - Angular 通用服务器渲染 WebSocket

转载 作者:太空狗 更新时间:2023-10-29 17:20:51 32 4
gpt4 key购买 nike

是否有使用 WebSockets 的 Angular Universal 示例?

在我的例子中,服务器端渲染不知道 WebSocket 对象是什么。如果我使用 socket.io, Node 服务器在尝试建立连接时会挂起。

关于这个问题的一些额外信息:

我从 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----");
}
}
}

关于node.js - Angular 通用服务器渲染 WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700412/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com