一文学会快速搭建Janus服务端(服务器搭建app)
off999 2025-03-29 20:51 54 浏览 0 评论
1、概述
想要了解Janus,首先需要知道WebRTC以及Janus和WebRTC之间的关系,本文将会对这些内容做简单的介绍,同时也会介绍一下Janus的架构,Janus可以实现的功能,并展示如何快速搭建一套Janus的后台服务器,最后利用官方的前端demo,实现sip通话。
2、JANUS简介
什么是WebRTC,它有哪些功能?WebRTC (Web Real-Time Communications) 是一个开源项目是一项实时通讯的技术,旨在使得浏览器能为实时通信提供简单的JavaScript接口,让浏览器通过JS实现即时通信接口。这个接口是通过一系列的信令,建立一个浏览器与浏览器之间(peer-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器。并且WebRTC通过实现MediaStream,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频。
那么什么是Janus呢?janus是一个WebRTC网关,由Meeteco设计和开发,是为Linux系统量身定制的,也可以在MacOS编译和安装。Windows不受支持,但如果需要的话,Janus可以在Windows 10中的“Windows Subsystem for Linux”上工作。
3、JANUS的架构及各文件作用
3.1、janus架构图
3.2、janus部分目录及文件的作用
4、JANUS服务端的简单搭建
好了说了这么多废话,下面就开始Janus服务端的搭建,搭建环境为centos7。
4.1、安装依赖包
首先需要安装janus的相关依赖包,以保证Janus服务能正常运行。其中有些依赖包是在github上的,下载的时候可能出现速度比较慢,或者出现会卡顿无法下载等情况,wget多试几次,多等待一会即可。
4.2、安装Janus
安装完Janus相关的依赖包以后,便要进入到我们主程序的安装,Janus的安装如下。
到此,janus的服务器的安装已经完成了。janus安装完成以后,是安装在/opt/janus目录的, 进入目录后可以看到组成结构,其中,Janus的执行文件在bin文件夹中,配置在etc/janus文件夹中。
由于本文旨在快速搭建,并实现sip通话,就不对配置做一一介绍,直接使用默认的配置启动,配置文件默认https是关闭,如需开启,需要进入janus.transport.http.jcfg文件中,将https = false改为true,并且需要将cert_pem和cert_key配置为有效的https证书路径再启动。
4.3、启动Janus
查看进程:ps -ef|grep janus
查看相关端口:netstat -apn|grep janus
停止进程:直接kill即可:kill -9 xxx
到此,可以看到http端口和ws端口已经提示启动成功了,这也表示Janus的后端服务已经启动成功了。个人认为对于Janus的服务端,不一定非要通过janus的配置开启https,可以通过nginx做一层转发即可。
4.4、前端项目
上面图中能看到Janus的目录中有一个share目录,
/opt/janus/share/janus/demos这个目录下,即使demo环境了。将demos目录拷贝本地nginx的www目录中,www目录为nginx的安装目录,然后访问即可。由于本文主要是搭建简单的sip,所以只需要关注janus.js, settings.js,siptest.html,siptest.js,在启动窗口可以看到后端为http请求的服务端口为8088,将settings.js中的server改为本机的8088端口即可,如果需要集成到自己的项目中,也只需要对这几个文件进行修改。部署完成以后,浏览器访问
http://localhost:8088/demos即可访问。页面如下,点击demos,选择Sip Gateway, 点击start,填入真实的sip话机信息,即可实现从浏览器打电话。
4.5、项目部署遇到的坑
4.5.1、版本问题
前端代码的版本和服务端使用同一版本,在开发过程中,如果使用老版本的前端的js文件修改后调用高版本的服务端,由于一下协议的不同,可能会导致电话打通后秒挂,所以要注意使用同一版本的前后端。
4.5.2、nice_address_ip_version
检查一下依赖环境,参考4.1安装依赖包有关于libnice这段安装。
4.5.3、提示找不到libsrtp
4.5.4、提示找不到libnice
4.5.5、要使用libsrtp1.5.4
在configure janus 时加上 --disable-libsrtp2。
4.5.6、libwebsockets.so.12报错
错误提示:libwebsockets.so.12: cannot open shared object file: No such file or directory。
相关推荐
- 键盘快捷键(键盘快捷键是哪个)
-
电脑键盘快捷键大全:Ctrl+1,2,3... 功能:切换到从左边数起第1,2,3...个标签Ctrl+A 功能:全部选中当前页面内容Ctrl+C 功能:复制当前选中内容Ctrl+D 功能:打开“添加...
- 宏基acer官网商城(宏基官方商城)
-
宏碁本本底部有个序列号标签,不是粉色的那个,粉色的是系统的序列号,白色的是本本的出厂序列号,上宏碁官网查查你的序列号就知道真假了。在盖子的后面就可以查询到序列号,或者是去网上查询宏碁笔记本在官网下...
- 网盘在哪里打开(华为网盘在哪里打开)
-
给你的是一个网盘地址吧,直接把这个地址放到浏览器地址栏就好了,如果有提取码,他会提示你输入提取码的。一般都是在网上找到百度云链接,然后把文件保存在自己的百度网盘文件夹里面的。打开百度网盘app,...
- win7sp1专业版(win7专业版vl)
-
Win7系统SP1是系统发布后第一个SP包x64是64位操作系统。Windows7指的是微软公司的Windows7操作系统ultimate指的是旗舰版(with表示伴随,说明这是提供商所提供...
- 手写输入法手写板怎么设置(手写输入法手写板怎么设置 iphone)
-
手写输入法设置方法:1、打开手机至桌面主页,保持手机处于工作状态; 2、在手机桌面主页列表找到设置,点击打开并进入设置主界面; 3、在设置主界面找到系统设置选项,点击打开并进入系统设置主界面; ...
-
- 推荐杀毒软件(下载杀毒软件最新版)
-
好的杀毒软件有360杀毒,金山毒霸,AVG杀毒等等。1,360杀毒,品牌介绍:360安全卫士品牌是一款由奇虎360公司推出的功能强、效果好、受用户欢迎的安全杀毒软件。360安全卫士拥有查杀木马、清理插件、修复漏洞、电脑体检、电脑救援、保护隐...
-
2025-11-12 08:51 off999
- 百度云盘官网(百度云盘官网下载)
-
网盘在手机上面仅仅是一个图标,他是不占用手机硬盘的,当然,如果你从网盘上下载了文件到本地,下载的文件就会占用手机的硬盘空间。要找到这个文件,可以通过文件管理器来进行查找,也可以通过路径的方式来查找,但...
-
- 路由器设置管理系统(路由器设置管理员密码怎么设置)
-
电脑端:把华为路由器接通电源,并开启WIFI,如果你使用电脑PC端,请使用网线连接路由器;成功连接到路由器之后,打开电脑浏览器,在浏览器中输入IP地址:192.168.3.1即可进入华为路由器管理界面;进入我要上网页面。在上网方式下拉框中,...
-
2025-11-12 07:51 off999
- win10家庭版密钥在哪里看(windows10家庭版密钥在哪里)
-
要查看Windows10系统的激活密钥,请按照以下步骤操作: 1.点击“开始”菜单,然后选择“设置”(齿轮图标)。 2.在“设置”窗口中,选择“更新和安全”。 ...
- 两个wifi路由器怎么连接(两个wifi路由器设置方法)
-
无线路由器再连接一个无线路由器的设置方法如下:一、主路由器设置方法:先将网线(总线)插在无线路由器的WAN口,用一条网线一头插入无线路由器的任意LAN口一头连接电脑网卡,开启路由器的电源。电脑打开浏览...
- windows7的安装过程(windows7安装步骤有哪些)
-
安装教程注意事项:1、本系统可以直接安装,不需要制作U盘启动盘,适合能正常开机的电脑。2、安装系统后C盘(包括桌面)数据会丢失,重要的东西请自行备份。3、此安装方法只适用于当前系统为XP、Win7、W...
- 惠普打印机插件手机版(惠普打印插件app)
-
您好,感谢您选择惠普产品。不是所有的打印机都可以实现手机打印功能的。一般来说支持ariprint的打印机,并且手机也有该功能,才能实现打印功能。如果您不需要实现打印功能,那么这个插件对您来说可能用处不...
- 电脑热点怎么禁止别人连接(怎么让电脑的热点不被关闭)
-
方法/步骤1/7首先,在我们的屏幕上找到“设置”。2/7点击进入设置之后,正数第三位就是个人热点。3/7在个人热点中,我们可以设置热点密码,开启关闭热点。4/7排名第三的是连接管理,可以设置允许一个至...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
