先贴上效果图以及操作路径。

  

  

  操作路径为:启动信令服务器,配置浏览器关闭mDNS,双端登录,浏览器端邀请。最终连接成功建立,我们通过datachannel成功通信

  (关闭mDNS是因为谷歌浏览器隐藏了局域网ip,我们暂时没写解析代码,配置方式为进入chrome://flags/#enable-webrtc-hide-local-ips-with-mdns改为disabled)

  信令服务器用的java/Tomcat,这个无所谓,什么都行,不过一般是用websocket交互。这边我没有用kvs引用的libwebsockets,因为不会,用的我以前自己写的模块。

  代码实现路径是:设备端和浏览器端先通过ws连上信令服务器,然后浏览器端发出邀请(这里我是发一个type=>hello的json到设备,通过信令服务器中转),然后设备createOffer并通过信令服务器发到浏览器,然后浏览器createAnswer返回到设备,然后双方分别收发IceCandidate,然后设备发现连接成功建立之后创建一个datachannel

  我懒得逐步解释代码,我直接把工程打包出来大家下载看吧。

  下一章我们尝试收发音视频数据,然后就完结了。

  点击下载代码

  有高手希望指点的话可以通过微信与我联系,我的id是wxid_8r2mjkbcu2an22

  最后修改时间 2020-11-06 10:47:42

  后来发现不需要关闭mDNS,因为ice的stun bind是双向奔赴,只要我们能收到对方的也就可以了。

  最后修改时间 2022-09-02 17:09:22

在嵌入式设备中实现webrtc的第三种方式②的更多相关文章

  1. 在嵌入式设备中实现webrtc的第三种方式①

    最近两年,我对于网络知识,包括底层协议学习比较多,webrtc这种几乎是使用到了所有层面网络协议的技术也逐渐进入我的视野. 之前我提出了两种在嵌入式设备上实现webrtc的方式,一是用官方代码,然后改 ...

  2. 在嵌入式设备中实现webrtc的第三种方式③

    本系列的最后一篇,讲解收发音视频数据. 贴出最终效果: 其实很简单,直接调用writeFrame即可,如下图: 当然,这是部分代码,完整代码在下面,展开可见: 1 #include "com ...

  3. 在Tomcat中部署web项目的三种方式

    搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...

  4. Tomcat中部署web应用的三种方式

    Tomcat中部署web应用的三种方式(静态部署)       第一种,针对war或解压后的war,最为常用的是直接操作webapp目录,将完整的war包或者web应用直接放到webapp目录下.使用 ...

  5. spring中创建bean对象的三种方式以及作用范围

    时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...

  6. Java中 实现多线程成的三种方式(继承,实现,匿名内部类)

    ---------------------------------------------------------------------------------------------------- ...

  7. Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  8. [转]Linux中设置服务自启动的三种方式

    from:http://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统 ...

  9. Linux中设置服务自启动的三种方式,ln -s 建立启动软连接

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务(http://www.0830120.com) 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立 ...

  10. python 中增加css样式的三种方式

    增加css样式的三种方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

随机推荐

  1. 我是如何使用 vue2+element-ui 处理负责表单,避免单文件过大的问题

    引言 在工作中我经常需要处理一些复杂.动态表单,但是随着需求不断迭代,我们也许会发现曾经两三百行的.vue文件现在不知不觉到了两千行,三千行,甚至更多... 这对于一个需要长期维护的项目,无疑是增加了 ...

  2. ArgoWorkflow教程(二)---快速构建流水线:Workflow & Template 概念

    上一篇我们部署了 ArgoWorkflow,并创建了一个简单的流水线做了个 Demo.本篇主要分析 ArgoWorkflow 中流水线相关的概念,了解概念后才能更好使用 ArgoWorkflow. 本 ...

  3. Mac M1 安装Homebrew

    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

  4. 从日志记一次Spring事务完整流程

    spring事务一次完整流程,创建 >确认获取连接 >完成 >提交>释放链接 DataSourceTransactionManager //Step1. 进入业务方法前,依据事 ...

  5. 【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差

    [问题分类]性能优化 [关键字]统计信息,阈值,执行计划 [问题描述]表新增87w数据自动收集统计信息任务没有启动导致SQL执行计划变差 [问题原因分析] CUS_REGISTER_READ 数据总量 ...

  6. 今日算法随笔:填充每个节点的下一个右侧节点指针 II

    题目链接:117. 填充每个节点的下一个右侧节点指针 II 题目描述 给定一个二叉树,填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不到下一个右侧节点,则将 next 指针设置为 ...

  7. opencv colors

    """ 在利用python进行画图时,我们可能常常用的颜色就是'k'黑色,'r'红色,'b'蓝色,'g'绿色等,这些颜色分别代表常见的 几种颜色.但是当我们画图比较多时, ...

  8. SQL SEVER CDC 启动和关闭 操作说明

    什么是变更数据捕获 (CDC)? 变更数据捕获使用 SQL Server 代理记录表中发生的插入.更新及删除. 因此,它使得可以通过关系格式轻松使用这些数据更改. 将为修改的行捕获将这些更改数据应用到 ...

  9. MDC – Checkbox

    前言 Checkbox 不是搭配 TextField 使用, 而是搭配 FormField. 所以独立一篇来写. 参考 Docs – Selection controls: checkboxes 效果 ...

  10. bfs与dfs ,全球变暖——蓝桥problems178

    问题描述: ....... .##.... .##.... ....##. ..####. ...###. ....... 有一张还以N*N的像素照片,"."表示海洋," ...