怎么做插座.io的实现在webtc视频通话和什么我要改变在server.js

How to do socket.io implementation in Webrtc Video calling and what i have to change in the server.js?

本文关键字:什么 我要 js server 改变 webtc 插座 io 实现 视频      更新时间:2023-09-26

如何做插座。io在webtc视频通话中的实现?

有点过载,但它可以工作:SocialVidRTC

我从你的问题中了解到,你已经有一个WebRTC项目和一些在server.js中的信号机制,可能是websockets。

将其替换为socket。io或任何其他信令如SIP/XHR/AJAX等,你需要用新的套接字替换server.js。基于IO的请求和响应代码。

遵循以下步骤:

  1. 为socket.io创建一个https服务器(因为webrtc页面只从安全来源捕获web cam输入)。将server赋值给一个变量,比如app

    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);
    

这里服务器。钥匙,服务器。crt和ca.crt是假ssl证书,8081是我选择的https端口。您也可以重用相同的HTTPS服务器来托管网页。

  • 在这个端口监听套接字。使用app之前定义的

    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'
    ]);
    
  • 现在实现信令特定的功能和调用,如

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

    如果你想要一个示例实现,你可以查看任何示例项目,如这里