【问题标题】:angular 4/socket.io access global variables and function callingangular 4/socket.io 访问全局变量和函数调用
【发布时间】:2018-08-31 09:51:25
【问题描述】:

对于 Angular 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(){}

【问题讨论】:

    标签: angular socket.io


    【解决方案1】:

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

    代码是这样的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多