Javascript 如何在中触发消息事件后断开和连接socket.io
在这里,我在socket服务器上工作,并将其连接到angular客户端。一切都进行得很顺利。我面临的问题是,每当我调用getRequest时,它都应该从我得到的消息中呈现get数据Javascript 如何在中触发消息事件后断开和连接socket.io,javascript,angular,socket.io,Javascript,Angular,Socket.io,在这里,我在socket服务器上工作,并将其连接到angular客户端。一切都进行得很顺利。我面临的问题是,每当我调用getRequest时,它都应该从我得到的消息中呈现get数据 getRequest() { this.sock.getData(); this.sock.socket.on('message', (data) => { this.getresponseData = data; }); this.sock.socket.on(
getRequest() {
this.sock.getData();
this.sock.socket.on('message', (data) => {
this.getresponseData = data;
});
this.sock.socket.on('disconnect',()=> {
console.log('A user disconnected');
});
}
在此之后,当我调用另一个方法,如postRequest()时,post请求发出的消息将在get request()中触发消息事件
以下是我的发帖请求
postRequest() {
this.sock.postData(this.postData);
this.sock.socket.on('message', (data) => {
this.responseData = data;
});
this.sock.socket.on('disconnect',()=> {
console.log('A user disconnected');
});
}
简言之,每当我调用postReuest时,从mesasge发出的数据也将发送到get请求中不应该发生的消息事件
在套接字服务器端,我使用的两个请求
socket.send(数据)套接字继承每个方法,其中每个方法都为单次激发侦听器声明了一个 侦听器在第一次调用后被取消注册
getRequest(){
this.sock.getData();
this.sock.socket.once('message',(data)=>{
this.getresponseData=数据;
});
this.sock.socket.on('disconnect',()=>{
log(“断开连接的用户”);
});
}
套接字继承每个方法,其中每个方法都为单次快照侦听器声明了一个
侦听器在第一次调用后被取消注册
getRequest(){
this.sock.getData();
this.sock.socket.once('message',(data)=>{
this.getresponseData=数据;
});
this.sock.socket.on('disconnect',()=>{
log(“断开连接的用户”);
});
}
你做错的是你明确地打电话
this.sock.socket.on('message', (data) => {
this.getresponseData = data;
});
每次都在上面这会多次连接一个客户机,这根本不需要
此函数必须在应用程序的整个生命周期中使用,除非您正在调用socket.removeAllListeners('disconnect')代码>显式
如果您希望在执行http请求后获取数据流,请仅使用一次。你的选择是错误的。您可能需要在那里使用经典的http请求。您所做的错误是您正在显式调用
this.sock.socket.on('message', (data) => {
this.getresponseData = data;
});
每次都在上面这会多次连接一个客户机,这根本不需要
此函数必须在应用程序的整个生命周期中使用,除非您正在调用socket.removeAllListeners('disconnect')代码>显式
如果您希望在执行http请求后获取数据流,请仅使用一次。你的选择是错误的。您可能需要在那里使用经典的http请求