Android RTC&ProjectRTC実装分析(一)

4602 ワード

AndroidRTC & ProjectRTC
Android webRTC       ,  webRTC   RTC     
git      https://github.com/pchab/AndroidRTC
AndroidRTC android client               ProjectRTC      
ProjectRTC       https://github.com/pchab/ProjectRTC

       :
AndroidRTC  client  ProjectRTC  server 
clients    server     
     ,client    PeerConnection  connection

Android RTCコンパイル
 git clone    ,   AndroidStudio    
   webRTC              ,         ,    
     Gradle AndroidStudio Gradle            apk

ProjectRTCインストール
 git clone         node.js         node.js  

         npm install
              node app.js
     127.0.0.1:3000            
  shell     Express server listening on port 3000

サーバ側のプロセス
ProjectRTC          app.js 
  js           

app        
├── [root             814]  routes.js
├── [root             928]  socketHandler.js
└── [root             853]  streams.js
   app.js        route.js     
              socketHandler.js  sokcet.io     
              stream.js       server    

     Express  ,           ,route.js stream.js           
      socketHandler.js   
socketHandler.js:
module.exports = function(io, streams) {
  io.on('connection', function(client) {
    console.log('-- ' + client.id + ' joined --');
    client.emit('id', client.id);

    client.on('message', function (details) {
      var otherClient = io.sockets.connected[details.to];

      if (!otherClient) {
        return;
      }
        delete details.to;
        details.from = client.id;
        otherClient.emit('message', details);
    });

    client.on('readyToStream', function(options) {
      console.log('-- ' + client.id + ' is ready to stream --');

      streams.addStream(client.id, options.name); 
    });

    client.on('update', function(options) {
      streams.update(client.id, options.name);
    });

    function leave() {
      console.log('-- ' + client.id + ' left --');
      streams.removeStream(client.id);
    }

    client.on('disconnect', leave);
    client.on('leave', leave);
  });

io.on :   nodejs socket.io   connect socket.io           socket.io    

      socket.io      server      id  message        client

            message   
    client       server         client
           (json  )  to from