gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 19:26:36 25 4
gpt4 key购买 nike

我必须为 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(){}

最佳答案

在我的例子中,我创建了新的 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 访问全局变量和函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49420525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com