lqq 8 years ago
parent
commit
1f425d426f
5 changed files with 62 additions and 24 deletions
  1. 0 21
      common/utilities.js
  2. 2 1
      dist/bower.json
  3. 1 1
      peer/Gulpfile.js
  4. 3 1
      peer/src/html/index.html
  5. 56 0
      peer/src/js/controller/peerController.js

+ 0 - 21
common/utilities.js

@@ -1,21 +0,0 @@
-var util = { 
-  inherits: function(ctor, superCtor) {
-    ctor.super_ = superCtor;
-    ctor.prototype = Object.create(superCtor.prototype, {
-      constructor: {
-        value: ctor,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-  },
-  extend: function(dest, source) {
-    for(var key in source) {
-      if(source.hasOwnProperty(key)) {
-        dest[key] = source[key];
-      }
-    }
-    return dest;
-  }
-}

+ 2 - 1
dist/bower.json

@@ -26,6 +26,7 @@
     "angular-sanitize": "^1.5.8",
     "jquery-qrcode": "*",
     "zTree": "^3.5.26",
-    "lodash": "^4.17.4"
+    "lodash": "^4.17.4",
+    "peerjs": "^0.3.14"
   }
 }

+ 1 - 1
peer/Gulpfile.js

@@ -36,7 +36,7 @@ var paths = {
     }
 }
 
-var distpath = '../dist/userview';
+var distpath = '../dist/peer';
 
 gulp.task('app-css', function() {
     del([distpath + '/app-*.css'], { cwd: process.cwd(), force: true });

+ 3 - 1
peer/src/html/index.html

@@ -10,9 +10,11 @@
     <link rel="stylesheet" href="app.css">
 </head>
 
-<body ng-app="app" ng-controller="UserController" class="full-client" onselectstart="return false">
+<body ng-app="app" >
     <ui-view></ui-view>
     <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
+    <script src="../bower_components/lodash/dist/lodash.js"></script>
+    <script src="../bower_components/peerjs/peer.min.js"></script>
     <script src="../bower_components/jquery/dist/jquery.min.js"></script>
     <script src="../bower_components/jquery-qrcode/jquery.qrcode.min.js"></script>
     <script src="../bower_components/angular/angular.min.js"></script>

+ 56 - 0
peer/src/js/controller/peerController.js

@@ -3,5 +3,61 @@
 angular.module('app').controller('PeerController', ['$scope', '$state', function($scope, $state) {
 
     // lxtalkClient.Invoke('{FB60F992-A0FD-47B3-AAA7-E80DF209C5A4}', '_Register', '', $scope);
+    var onConnected = function(c){
+        c.on('data', function(data) {
+                //to do
+        });
+        c.on('close', function() {
+            delete connectedPeers[c.peer];
+        });
+        connectedPeers[c.peer] = 1;
+    };
 
+    var onOpened = function(id){
+        console.log(id);
+    };
+
+    var onError = function(err){
+        console.log(err);
+    };
+
+    $scope.init = function(jsonStr){
+        var data = JSON.parse(jsonStr);
+        $scope.peer = new Peer(
+            {
+                config:{
+                    'iceServers': [
+                        { url: 'stun:stun.l.google.com:19302' },
+                        { url: 'turn:homeo@turn.bistri.com:80', credential: 'homeo' }
+                    ]},
+                key: data.loginName
+            }        
+        );
+        $scope.connectedPeers = {};
+        $scope.peer.on('open', onOpened);
+        $scope.peer.on('connection', onConnected);
+        $scope.peer.on('error', onError);
+    };
+
+    $scope.connect = function(jsonStr){
+        var data = JSON.parse(jsonStr);
+        if (!$scope.connectedPeers[data.loginName]) {
+            var c = $scope.peer.connect(data.loginName, data);
+            c.on('open', function(){onConnected(c);});
+            c.on('error', onError);
+            $scope.connectedPeers[data.loginName] = 1;
+        }
+    };
+
+    $scope.send = function(jsonStr, data){
+
+    };
+
+    $scope.close = function(jsonStr){
+
+    };
+
+    $scope.closeAll = function(jsonStr){
+
+    };
 }]);