我正在尝试使用todo app中的套接字学习角度。但套接字不起作用。我正在使用socket.io v2.0.3。但我在chrome控制台上遇到错误。
我的代码是 -
import io from "socket.io-client";
private url = 'http://localhost:3001';
private socket;
ngOnInit(): void() {
this.socket = io.connect(this.url);
// Receive Added Todo
this.socket.on('TodoAdded', (data) => {
console.log('TodoAdded: '+JSON.stringify(data));
this.todos.push(data.todo);
});
}
答案 0 :(得分:1)
我认为你需要像这样导入io:
import * as io from 'socket.io-client';
否则您不知道从socket.io-client使用哪个导出。它有 没有默认导出。
旁注:
如果您愿意,可以使用this.socket = io(this.url)
而不是使用connect-method。
答案 1 :(得分:0)
这个问题消耗了我很多精力,解决方案非常简单。所有人都在angular6 +和RxJS 6+中工作 在您的 polyfills.ts 文件中,只需添加此行
(window as any).global = window;
希望这可以解决您的问题