Socket.io无法在角项目

时间:2018-03-06 09:29:46

标签: node.js angular socket.io

我正在尝试使用todo app中的套接字学习角度。但套接字不起作用。我正在使用socket.io v2.0.3。但我在chrome控制台上遇到错误。

Error screenshot

我的代码是 -

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);
  });
}

2 个答案:

答案 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;

希望这可以解决您的问题