Javascript 在页面更改时与套接字io发出的消息成角度(无重新加载)

Javascript 在页面更改时与套接字io发出的消息成角度(无重新加载),javascript,angularjs,node.js,socket.io,Javascript,Angularjs,Node.js,Socket.io,因此,我现在正在设置节点服务器,它看起来像这样: var multer = require('multer'); var express = require('express'); var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); var cookieParser = require('socket.io-cookie-parser'); va

因此,我现在正在设置节点服务器,它看起来像这样:

    var multer = require('multer');
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var cookieParser = require('socket.io-cookie-parser');
var moment = require('moment');
var mysql = require('mysql');
var users = {};
var message = "";
io.use(cookieParser());

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'user',
    password: 'pass',
    database: 'myDb',
    port: 3306
});
connection.connect();

io.on('connection', function(socket)
{

    socket.on('loadUserDetails', function(userDetails){

        console.log(userDetails);

    });

    socket.on('browserClose', function(msg)
    {
        console.log('this user has disconnect: ');
    });
});


http.listen(8105, function(){
    console.log('listening on *:8105');
});
现在,在我的angular应用程序中,我有以下服务:

 app.factory('clientSocket', function (socketFactory) {
    var myIoSocket = io.connect('http://localhost:8105');

    var clientSocket = socketFactory({
        ioSocket: myIoSocket
    });

    return clientSocket;
});
然后我有一个HeaderController该控制器应用于每个页面,因为它控制模板的头部区域:

    app.controller('HeaderController', ['$http', '$scope','$sessionStorage', 'apiUrl','$log','Session','api','clientSocket',  function ($http, $scope, $sessionStorage,apiUrl, $log, Session, api,clientSocket) {
    clientSocket.forward('someEvent', $scope);
    clientSocket.emit('loadUserDetails', $sessionStorage.activeUser.user);
    $scope.$on('clientSocket:someEvent', function (ev, data) {
        $scope.theData = data;
    });

}]);
现在来谈谈这个问题

每次我更改页面时,不重新加载

clientSocket.emit('loadUserDetails', $sessionStorage.activeUser.user);
每次都会打电话

所以我的问题是我如何处理这样的案件