Я подключаю приложение Angular JS с несколькими состояниями (маршрутами) с сервером Node (Socket), работающим на бэкэнде. Когда я посещаю какое-то другое состояние и возвращаюсь в состояние, в котором написан код сокета, он снова регистрируется, и когда возникает событие, функция вызывается несколько раз, что влияет на производительность.
var socket = io.connect('127.0.0.1:3000');
socket.on("connect",function(){
console.log("connected");
});
socket.on("test-channel:App\\Events\\NewMessage", function(message) {
if (vm.questions.length < 3) {
console.log("question fetching started");
vm.fetch_q();
}
});
Я попытался также включить io.connect('localhost') в службу и поместить только событие в контроллер, но затем он также срабатывает несколько раз.
var socket = io.connect('127.0.0.1:3000');
, поэтому он пытается снова подключиться к серверу. переместите код подключения в отдельную службу и используйте службу во всем приложении. - person Elad   schedule 06.12.2017