2013-03-13 39 views

回答

0

我從你的問題,你已經有了一個的WebRTC項目和server.js,可能的WebSockets一些信號機制理解。

要用socket.io或SIP/XHR/AJAX等其他信號代替它,你需要用新的基於socket.io的代碼替換server.js以獲取請求和響應。

遵循以下步驟:

  1. 創建一個HTTPS服務器(因爲的WebRTC頁捕捉網絡攝像頭,只能從安全來源輸入)爲socket.io。將服務器分配給變量說應用程序

    var fs = require('fs'); 
    var https = require('https'); 
    
    var options = { 
        key: fs.readFileSync('ssl_certs/server.key'), 
        cert: fs.readFileSync('ssl_certs/server.crt'), 
        ca: fs.readFileSync('ssl_certs/ca.crt'), 
        requestCert: true, 
        rejectUnauthorized: false 
    }; 
    
    var app = https.createServer(options, function(request, response){ 
         request.addListener('end', function() { 
         file.serve(request, response); 
        }).resume();  
    }); 
    
    app.listen(8081); 
    

這裏server.key,server.crt這和ca.crt是假的SSL證書和8081是我選擇的HTTPS端口。 您也可以重複使用相同的https服務器來託管網頁。

  • 聽此相同的端口socket.io使用應用前面定義

    var io = require('socket.io').listen(app, { 
        log: false, 
        origins: '*:*' 
    }); 
    
    io.set('transports', [ 
        'websocket' 
    ]); 
    
  • 我只選擇WebSocket的,但你可以設置其他類型的傳輸太如

    socket.set('transports', [ 
        'websocket' 
        , 'flashsocket' 
        , 'htmlfile' 
        , 'xhr-polling' 
        , 'jsonp-polling' 
    ]); 
    
  • 立即執行的簽名nalling具體功能和電話等,

    io.sockets.on('connection', function (socket) { 
        ... 
         socket.on('webrtc-joinchannel',function(data){ 
          var resp=joinChannel(data); 
         socket.emit('resp-webrtc-joinchannel', resp); 
         }); 
    ... 
    }); 
    
  • 注:我使用socket.io V0.9。

    如果你想要一個示例實現,你可以查看任何示例項目,如here

    相關問題