在编写多用户聊天时,我还没有设法克服信号服务器,因此我开始寻找现成的框架。 在我看来,最简单的是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/easyrtcGoogle网上论坛:
https :
//groups.google.com/d/forum/easyrtc