首页 > 其他分享 >WebRTC 通讯隧道和信令服务实现服务视频通话

WebRTC 通讯隧道和信令服务实现服务视频通话

时间:2024-03-06 17:55:07浏览次数:37  
标签:服务 信令 admin 192.168 server urls WebRTC data webrtc

安装NAT穿透服务器(ICE Server)

brew install  coturn

//  添加用户
turnadmin -a -u admin -r realm -p admin


// 测试服务
turnutils_peer -p 34800
turnutils_uclient -v -e 192.168.1.112 -r 34800 -u admin -w admin -p 3478 192.168.1.112

安装信令服务器

git clone https://github.com/andyet/signalmaster.git
npm install
node server.js


### 修改  server.js  110
if (!config.turnorigins || config.turnorigins.indexOf(origin) !== -1) {
            config.turnservers.forEach(function (server) {
                credentials.push({
                    username: server.username,
                    credential: server.credential,
                    urls: server.urls || server.url
                });
            });
        }

### development.json
{
  "isDev": true,
  "server": {
    "port": 8888,
    "/* secure */": "/* whether this connects via https */",
    "secure": false,
    "key": null,
    "cert": null,
    "password": null
  },
  "rooms": {
    "/* maxClients */": "/* maximum number of clients per room. 0 = no limit */",
    "maxClients": 0
  },
  "stunservers": [
    {
      "urls": "stun:192.168.1.112:3478"
    }
  ],
  "turnservers": [
    {
      "urls": ["turn:192.168.1.112:3478"],
      "username": "admin",
      "credential":"admin",
      "expiry": 86400
    }
  ]
}

浏览器端页面

  • index.html
<!DOCTYPE html>

<html>

<head>

    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js"></script>
    <script src="simplewebrtc-with-adapter.bundle.js"></script>
    <style>
        #remoteVideos video {
            height: 150px;
        }
        #localVideo {
            height: 150px;
        }
    </style>

</head>

<body>

    <textarea id="messages" rows="5" cols="20"></textarea>
    <br/>
    <input id="text" type="text" />
    <input id="send" type="button" value="send" />
    <br/>
    <video id="localVideo"></video>
    <div id="remoteVideos"></div>
    <script>
        var webrtc = new SimpleWebRTC({
            localVideoEl: 'localVideo',
            remoteVideosEl: 'remoteVideos',
            autoRequestMedia: true,
            url:'http://localhost:8888',  //signal服务器
            nick: 'yubaolee'
        });
        webrtc.on('readyToCall', function () {
            webrtc.joinRoom('room1');
            $('#send').click(function () {
                var msg = $('#text').val();
                webrtc.sendToAll('chat', { message: msg, nick: webrtc.config.nick });
                $('#messages').append('<br>You:<br>' + msg + '\n');
                $('#text').val('');
            });

        });

        webrtc.connection.on('message', function (data) {
            if (data.type === 'chat') {
                console.log('chat received', data);
                $('#messages').append('<br>' + data.payload.nick + ':<br>' + data.payload.message + '\n');
            }

        });
    </script>
</body>

</html>

标签:服务,信令,admin,192.168,server,urls,WebRTC,data,webrtc
From: https://www.cnblogs.com/guanchaoguo/p/18057182

相关文章

  • nginx反向代理服务器实现postgreSQL
    可访问的地址:192.168.1.200:9856不可访问的地址:192.168.214.133:32222(pg库的地址)在192.168.1.200服务器上安装nginx,设置一个监听的端口(9856),将地址二192.168.214.133:32222映射到这个端口(版本要大于nginx1.9.xxx,stream和http是同级关系,在Navicat上通过连接主机-192.168.1......
  • 面试官:说说微服务灰度发布的底层实现?
    微服务中的灰度发布(又称为金丝雀发布)是一种持续部署策略,它允许在正式环境的小部分用户群体上先部署新版本的应用程序或服务,而不是一次性对所有用户同时发布全新的版本。这种方式有助于在生产环境中逐步验证新版本的稳定性和兼容性,同时最小化潜在风险,不影响大部分用户的正常使用......
  • 用phpStudy配置apache服务器
    一:下载phpStudy1进入官网https://www.xp.cn/download.html选择稳定的2018版本2执行下载好的文件,选择下载地址注意!这里的安装路径不能有中文3亮两个绿灯代表正常运行,如果亮红灯要尽快排除故障二:点击查看phpStudy的功能这里不做详细介绍,自行研究三:配置phpStudy在端口......
  • 应用监控 eBPF 版:实现 Golang 微服务的无侵入应用监控
    作者:古琦在现代软件架构中,微服务已成为构建可扩展和灵活应用程序的流行方式。每个微服务负责应用程序的一部分功能,它们共同工作以提供完整的服务。由于微服务架构的分散特性,监控变得至关重要,有效的微服务监控是确保高可用性、可靠性和服务质量的关键组成部分,它支撑了整个系统的健......
  • mysql cpu 1300% 耗尽服务器cpu资源 系统变慢问题排查解决
    每到下午用户使用高峰期发现16核的服务器mysql的cpu经常占用超过1300% 总cpu占用95%以上,以前0.1秒的查询居然要查询10几秒用showprocesslist  命令查看mysql发现很多 select*frome_task_assignment_odmwheretask_code='xxx'看了下这个表有400多万数据,task_code没......
  • 问题记录——/etc/pam.d/common-auth 修改后无法登录服务器系统(SuSE 12 SP5)
    背景:公司三级等保问题整改,要求配置登录失败处理功能,服务器系统为suse12SP5,配置方法如下:在/etc/pam.d/common-auth中配置相关参数策略:authrequiredpam_tally2.so onerr=faildeny=5unlock_time=300even_deny_rootroot_unlock_time=10配置连续登录失败5次,普通账户锁定300......
  • vue2项目命令部署服务器
      1、添加命令、依赖  //package.json"deploy":"node./deploy/config.js"   "shelljs":"^0.8.5",   "scp2":"^0.5.0"2、添加环境变量 #自动部署VUE_APP_SERVER_ID=03、添加deploy文件夹 //dep......
  • 微服务架构,客户端如何捕捉服务端的异常?
    在微服务架构或者分布式系统中,客户端如何捕捉服务端的异常?这里说的客户端指调用方、服务端指被调用方,它们通常运行在不同的进程之中,这些进程可能运行在同一台服务器,也可能运行在不同的服务器,甚至不同的数据机房;其使用的技术栈可能相同,也可能存在很大的差异。为什么在Java、C#......
  • [智慧建筑]NTP网络时间服务器(卫星时钟系统)助力建筑数字化
    [智慧建筑]NTP网络时间服务器(卫星时钟系统)助力建筑数字化[智慧建筑]NTP网络时间服务器(卫星时钟系统)助力建筑数字化京准电子科技官微——ahjzsz随着大数据、云计算时代的到来,各行业信息化建设的不断提升,信息化下的各个系统不再单独处理各自业务,而是趋于协同工作,因此,各个单......
  • 私有网盘服务dzzoffice备份脚本
    这里的备份脚本基于上一篇文章中记录的dzzoffice部署方式进行备份#!/bin/bash#备份网盘服务#备份路径BACKUP=/data/backup/#dzzoffice路径DZZOFFICE=/data/dzzofficeDATE=$(date+\%Y-\%m-\%d)#要备份的数据库,多个用空格分隔dblist=(dzzoffice)echo'开始执行备份......