Ionic/Angular 和 Socket.IO - 在收到 Socket.IO 事件时显示弹出窗口

Ionic/Angular and Socket.IO - Show popup upon Socket.IO event received

我正在尝试使用 Ionic Framework (AngularJS) 和 Socket.IO.

构建实时移动应用程序

来自 jQuery 背景,我对整个 Ionic/Angular 应用程序设计和结构(例如,控制器、服务等)有点陌生。所以我想知道,我的应用程序应该如何构建,或者 best/ideal 构建我的应用程序的方式是什么?

更具体地说,在 Ionic/Angular 结构的应用程序中,我通常的 Socket.IO 代码应该放在哪里?我见过一个组件 (https://github.com/btford/angular-socket-io),它(据我所知)将 Socket.IO 代码封装在 Angular 工厂中。这是要走的路吗?

我真正想要实现的是:

  1. 收到 Socket.IO 事件时打开一个 (Ionic) 弹出窗口并且
  2. emit/send Socket.IO event/message 发生 UI 事件(例如,单击按钮)。

我的 Ionic/Angular 代码结构应该如何实现?也就是说,哪个代码进入哪个 component/controller/service/factory?

即使是对结构的高级描述也可以作为起点。

作为您的示例,这是我使用 ChatCtrl 控制器的方法。

 <!-- app.js -->
 <script>
   angular.module('chatApp', ['ngAnimate'])

   .controller('ChatCtrl', ['$scope', '$http', function($scope, $http) {

     var socket = io.connect();

     // on connect, grab username
     socket.on('connect', function(data) {
       nickname = prompt("What's your name?");
       socket.emit('join', nickname);
     });

     socket.on('statusConnected', function(data) {
       $scope.status = data;
       $scope.$apply($scope.status);
     });

   }]);
 </script>

我的弹出窗口是 JavaScript nickname = prompt("What's your name?"),但您可能会触发 modal 或您想要的任何其他带有更多 JS 的弹出窗口