将数组从控制器传递到工厂错误

Pass Array from Controller to Factory error

我有一个使用 angular-websocket 连接后端的工厂,我需要将信息从我的控制器传递给它,以便它发送该信息,我想将它作为数组传递。 工厂是这样的:

.factory('registerService', function($websocket) {
  var dataStream = $websocket('ws://localhost:3000'); //websocket
  dataStream.onOpen(function() {
    console.log('in');
    this.sendId = function(data) {
    console.log('data: '+data);
    };
  })
  dataStream.send(function(message) {
    //send info to backend
  });
})

控制器本身:

.controller("registerController", function($scope,$stateParams,$ionicPopup,$state,registerService) {
  $scope.registerService = registerService;
  $scope.signUp = function() {
        registerBox = [];
        registerBox.push('Register')
        registerService.sendId(registerBox);
  };
})

但是我收到错误消息:registerService.sendId 不是一个函数。 请问有什么问题吗?

     .factory('registerService', function($websocket) {
          var dataStream = $websocket('ws://localhost:3000'),
              _this = this;

          dataStream.onOpen(function() {
            console.log('in');
            _this.sendId = function(data) {
               console.log('data: '+data);
            };
          })
          dataStream.send(function(message) {
            //send info to backend
          });

         return _this;
   });