WebRTC-更加轻松(EasyRTC)

在编写多用户聊天时,我还没有设法克服信号服务器,因此我开始寻找现成的框架。 在我看来,最简单的是EasyRTC。

根据说明,在Windows和Linux上,所有内容的安装都非常简单:
1.下载并安装Node.js。
2.从Github,我们下载easyRTC,转到下载的文件夹。
3.我们在控制台中输入npm install(我记得在下载的easyRTC文件夹的目录中),将为Node.js安装必要的软件包。
4.我们还在控制台中启动服务器:node server.js。
所有! 现在,默认情况下,在服务器8080时,将启动使用easyRTC的示例。
要编写您自己的聊天记录,您需要在页面上连接socket.io.js和easyrtc.js,使用nginx时,您可以按以下方式“代理”:
在配置文件中:
上游后端EasyRTC {
		服务器127.0.0.1:9080;
     }
在服务器部分:
位置/socket.io {
                        #proxy_pass http:// 127.0.0.1:9080;
			 proxy_pass http:// backendEasyRTC;
			 proxy_http_version 1.1;
			 proxy_set_header升级$ http_upgrade;
			 proxy_set_header连接“升级”;
			 proxy_set_header主机$主机;
         }

Socket.io.js和easyrtc.js(位于api文件夹中)分别放入静态变量。

接下来,您需要配置easyRTC:

在easyrtc.js文件中,将easyRTC.webSocket更改为:
 easyRTC.webSocket = io.connect('http://您的服务器');

并在config.js配置文件(与server.js位于同一位置)中,将标准端口更改为您的标准端口,在我的情况下为9080:
 config.httpPort = 9080;


在页面上,连接必要的文件
 <script src =“ / socket.io/socket.io.js”> </ script>
 <script type =“ text / javascript” src =“ / static / js / easyrtc.js”> </ script>


规定视频标签:
对于远程用户
 <video autoplay =“ autoplay” id =“ remoteVideo1”> </ video>
 <video autoplay =“ autoplay” id =“ remoteVideo2”> </ video>

并展示自己
 <video autoplay =“ autoplay” id =“ localVideo”静音=“ muted”音量=“ 0”> </ video>


我们在页面开始处启动easyRTC:
 var maxCALLERS = 3;  //房间人数
 window.onload-函数(){
   easyRTC.setLoggedInListener(callEverybodyElse);  //当新的流webrtc触发
   easyRTC.initManaged(“ myroom”,“ localVideo”,[“ remoteVideo1”,“ remoteVideo2],loginSuccess);
 // myroom-用户所在的房间的名称
 // localVideo-您的视频
  // [“” remoteVideo1“,” remoteVideo2]-输出远程用户流的位置。 
 // loginSuccess-在其中可以找到您的流ID
 }

函数loginSuccess(easyRTCId){
     console.log('我的ID'+ easyRTCId);  //有助于进一步识别用户
 }

函数callEverybodyElse(otherPeople){
             easyRTC.setLoggedInListener(null); 
             var list = []; 
             var connectCount = 0;
    
            为(其他人中的var i){ 
                 list.push(i);
             }
     //默认情况下,新流是数组中的最后一个
            函数建立连接(位置){
                函数callSuccess(){
                     connectCount ++;
                    如果(connectCount <maxCALLERS && position> 0){
                        建立连接(位置1);
                     }
                 }
                函数callFailure(){
                     easyRTC.showError(“ CALL-REJECTED”,“对方拒绝”);
                    如果(connectCount <maxCALLERS && position> 0){
                        建立连接(位置1);
                     }            
                 }
                 easyRTC.call(列表[position],callSuccess,callFailure);    
             }
            如果(list.length> 0){ 
                建立连接(list.length-1); 
             }
         }


此外,您可以指定连接端口:
 easyRTC.setSocketUrl(“:9088”);

比特率视频:
 easyRTC.setVideoBandwidth(40);

影片解析度:
 easyRTC.setVideoDims(320,180);  -视频分辨率

这是多用户聊天的最低要求。
此外,在config.js easyrtc.js文件中,以及在Github和Google网上论坛中。
谢谢,如果您读完了。

网址: http//www.easyrtc.com/
GitHub: https : //github.com/priologic/easyrtc
Google网上论坛: https//groups.google.com/d/forum/easyrtc

Source: https://habr.com/ru/post/zh-CN436928/


All Articles