angular 4/socket.io 访问全局变量和函数调用
Posted
技术标签:
【中文标题】angular 4/socket.io 访问全局变量和函数调用【英文标题】:angular 4/socket.io access global variables and function calling 【发布时间】: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()
【问题讨论】:
【参考方案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
);
【讨论】:
以上是关于angular 4/socket.io 访问全局变量和函数调用的主要内容,如果未能解决你的问题,请参考以下文章