javascript - angularjs移除socketio监听
本文介绍了javascript - angularjs移除socketio监听的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
app.factory('socket', function($rootScope) {
var socket = io.connect('http://192.168.220.25:3000');
return {
on: function(eventName, callback) {
socket.addEventListener(eventName, function() {
var args = arguments;
$rootScope.$apply(function() {
callback.apply(socket, args);
});
});
},
emit: function(eventName, data, callback) {
socket.emit(eventName, data, function() {
var args = arguments;
$rootScope.$apply(function() {
if(callback) {
callback.apply(socket, args);
}
});
})
},
removeListener: function(eventName, callback) {
socket.removeEventListener(eventName, function() {
var args = arguments;
$rootScope.$apply(function() {
callback.apply(socket, args);
});
})
},
};
});
angularjs的没办法移除socket,想问一下移除监听要怎么弄??
解决方案
removeListener的第二个参数 callback的句柄要求和addEventListener时候的句柄是同一个哟。。。
app.factory(xxx,xxxxxx){
var socket = xxxxxx;
var socketHander = function(){
var args = arguments;
$rootScope.xxxxxx //balabalabala
xxxxxxx;
};
return {
on: function(xxxxxxx){
socket.addEventListener("xxxxxx",socketHander);
}
remove: function(xxxxxxx){
socket.removeEventListener("xxxxxx",socketHander);
}
}
}
p.s. 以后代码别贴图。。。直接上代码,否则谁高兴给你一句句打出来。
这篇关于javascript - angularjs移除socketio监听的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文