Socket.io与AngularJS重新连接

时间:2015-05-22 14:20:11

标签: angularjs socket.io

我正在尝试将socket.io添加为新的角度服务。

服务器可以断开未获得authed的客户端。

客户端可以稍后再次连接服务器。

我发现问题是无法处理新连接的先前侦听器事件。是否有必要向套接字连接添加新的侦听器?如何重用以前的侦听器事件?

angular.module('services')
.factory('socket', function($rootScope, ENV) {
            var socket = io.connect(ENV.chatServer,{'forceNew': true });

            return {
              reconnect: function (id, accesstoken) {
                console.log('socket.reconnect()');
                //socket.io.reconnect();
                socket = io.connect(ENV.chatServer,{'forceNew': true });
                socket.on('connect', function(){
                  socket.emit('authentication', {uid: id, accessToken: accesstoken });
                });
              },
              disconnect: function () {
                socket.io.disconnect();
              },
              on: function (eventName, callback) {
                socket.on(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);
                    }
                  });
                });
              }
            };
          });

0 个答案:

没有答案