角度 4/socket.io 访问全局变量和函数调用



我必须为角度 4 前端使用简单的套接字客户端。当我向socket.on接收数据时,无法将该数据分配给全局变量,也无法在socket.on内调用任何函数。

public sessionId;
constructor(){
var socket = io.connect('http://**.***.***.***:****');
socket.on('connect', function (data) {
  console.log('user connected');
  socket.emit('add user', { userId: uid });
});
socket.on('create channel', function (data) {
  console.log(data);
  this.sessionId = data.sessionId;    //error
  this.function();                    //error
  socket.emit('feedback', { received: true });
});
}

function(){}

就我而言,我创建新的可观察并处理套接字事件。 和一个模块订阅该可观察并调用函数。

该代码是这样的:

  getSocketEvent(){
    let observable = new Observable(observer => {
      this.socket.on('event', (data) => {
        observer.next(data);
      });
      return () => {
        // this.socket.disconnect();
      };
    });
    return observable;
  }

  initService(){
    this.getSocketEvent().subscribe(data => {
      console.log('socket data :',data);
      //do something HERE
    });
  }

最新更新