当前位置: 首页 > news >正文

深圳专业制作网站技术午夜做网站

深圳专业制作网站技术,午夜做网站,手机怎么在百度做网站,网站建设分为展示型首先需要一个信令服务器,我们使用nodejs来搭建。两个端:发送端和接收端。我的目录结构如下图:流程 创建一个文件夹 WebRTC-Test。进入文件夹中,新建一个node的文件夹。使用终端并进入node的目录下,使用 npm init 创建p…
  1. 首先需要一个信令服务器,我们使用nodejs来搭建。两个端:发送端和接收端。
  2. 我的目录结构如下图:
  3. 流程
    1. 创建一个文件夹 WebRTC-Test。
    2. 进入文件夹中,新建一个node的文件夹。
    3. 使用终端并进入node的目录下,使用
      npm init

      创建package.json。

    4. 新建server.js,复制一下代码
      const app = require('express')();
      const wsInstance = require('express-ws')(app);const cors = require('cors');
      app.use(cors({ origin: 'http://localhost:3000' }));app.ws('/', ws => {ws.on('message', data => {// 未做业务处理,收到消息后直接广播wsInstance.getWss().clients.forEach(server => {if (server !== ws) {server.send(data);console.log(data,)}});});
      });console.log("服务启动: http://localhost:8080");
      app.listen(8080, '0.0.0.0');
    5. 下载信令服务器的依赖。
      npm install express;
      npm install express-ws;
      npm install cors;
    6. 使用node server.js启动node的服务。
    7. 准备接收方的代码(receive.html)。
      <!DOCTYPE html>
      <html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"><title>Receiver</title>
      </head><body><video autoplay id="remote"></video>
      </body>
      <script>const remoteVideo = document.querySelector('#remote')const socket = new WebSocket('ws://localhost:8080');socket.onopen = function () {console.log("Socket Success")}let buddy = new RTCPeerConnection()// 如果接收到对方的视频socket.onmessage = function (e) {const { type, sdp, iceCandidate } = JSON.parse(e.data)console.log(type)switch (type) {case "offer":buddy.setRemoteDescription(new RTCSessionDescription({ type, sdp }))buddy.createAnswer().then(answer => {buddy.setLocalDescription(answer)socket.send(JSON.stringify(answer))})break;case "offer_ice":buddy.addIceCandidate(iceCandidate)break;default:break;}}buddy.ontrack = function (e) {remote.srcObject = e.streams[0]}buddy.onicecandidate = function (e) {if (e.candidate) {socket.send(JSON.stringify({type: "answer_ice",iceCandidate: e.candidate}))}}</script></html>
    8. 准备发送方的代码(send.html)。
      <!DOCTYPE html>
      <html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"><title>Send</title>
      </head><body><script>const socket = new WebSocket('ws://localhost:8080');socket.onopen = function () {console.log("Socket Success")}let peer = new RTCPeerConnection()navigator.mediaDevices.getUserMedia({video: true,audio: true}).then(stream => {stream.getTracks().forEach(track => {peer.addTrack(track, stream);})peer.createOffer().then(offer => {peer.setLocalDescription(offer);socket.send(JSON.stringify(offer));})})peer.onicecandidate = function (e) {if (e.candidate) {socket.send(JSON.stringify({type: "offer_ice",iceCandidate: e.candidate}))}}// 如果接收到对方的视频socket.onmessage = function (e) {const { type, sdp, iceCandidate } = JSON.parse(e.data)console.log(type)switch (type) {case "answer":peer.setRemoteDescription(new RTCSessionDescription({ type, sdp }))break;case "answer_ice":peer.addIceCandidate(iceCandidate)break;default:break;}}</script>
      </body></html>
    9. 使用vscode的插件live server启动两个html文件。
      下载live server插件。

      启动live server。

      启动后两个端口号。


    10. 等全部启动后,查看接收端的页面,要等一段时间,可以看到摄像头拍到的画面。
      接受端播放不了,在浏览器控制台中输入 remoteVideo.play() 就行
       

http://www.yayakq.cn/news/154333/

相关文章:

  • 网站备案资质网络口碑营销
  • 深圳物流公司排名齐齐哈尔网站seo
  • 判断网站首页盐城做企业网站公司
  • 企业手机网站建设联系方式成都平面设计培训学校有哪些
  • 成品网站源码1快速开发企业网站
  • 电话销售做网站犯法吗南部县网站建设
  • 开发个dapp要多少钱jsp网站如何做seo
  • 网站备案协议书设计网站有哪些
  • 专门装修的网都有什么网网站网站官网建设
  • 自己建站的网站网站建设方案分析
  • 凡科做网站的模版在哪儿找网站建设中企动力强
  • 制作游戏需要学什么青岛百度推广seo价格
  • 三门峡网站建设费用文大侠seo
  • flv网站建设网站建设系统平台
  • 合肥市网站建设 小程序wordpress外汇
  • dns修改国外网站网站首页做了一下调整会被k吗
  • 衡水提供网站制作公司电话百度官方营销推广平台
  • 集团网站 wordpress河北建网站
  • 江苏省网站建设wordpress导出静态网站
  • 海外如何 淘宝网站建设东仓建设网站
  • 建筑行业资讯网站班级介绍网页制作模板
  • 服务专业的建网站公司电话网页宣传方案
  • 做竞彩网站代理犯法么php做网站首页
  • 免费婚纱网站模板作品网站
  • 浙江东阳市网站建设公司网站 网络营销价值
  • 建设网站买的空间是服务器吗网站制作工资
  • 磁县企业做网站推广适合0基础网站开发软件
  • 上海滕州建设集团网站网站常州建设
  • 建设银行上海黄浦支行网站自己的电脑做服务器,并建网站
  • 成都房地产网站开发wordpress表单提交付费