Gensee移动SDK之(二)协议

         首先,对于协议而言,有标准的,也有私有的,就看具体使用场景的修饰与更改情况了。部分朋友在接触SDK的时候会提出此疑问,只能说“各怀鬼胎”。第一,即便我们告知我们使用的协议,该用sdk的时候,还是用sdk,sdk接口层面上并不包含协议的影子,这也是sdk去繁化简的一个重要特点;第二,当回复其用A协议时,会被反问怎么不用B协议,这下这能“呵呵”了,无可奉告,兄弟,更深层次的我们回头再探讨大笑!  就老老实实的调接口吧。第三,本着学习和业务扩展的需要了解使用到的协议,这也要“回头探讨”。

        

        开发者在使用根本不用关心这个“协议”,为什么呢?

        因为sdk的原则就是把复杂的封装,变成简单的调用。举个聊天消息例子:系统内xml规则

       <msg type="chat">

           hello

           <richText>hello</richText>

       </msg>

       原始内部接口可能是这样的  sendXmlData(String xml)   ------------------------(1) xml 为上面这段xml数据

       

      对外初级接口sendChatData(String text,String richText)   -----------------------(2)text 为hello,richText为hello

      

       对外高级接口sendChatData(String content) ---------------------------------------(3)content 为hello

       对比之下封装越简单,对“协议”距离越远。用(3)  仅需要传入 “hello” 即可发送,用(1) 就需要了解xml的组成和xml的构造以及解析,把“hello” 变成  

       <msg type="chat">

           hello

           <richText>hello</richText>

       </msg>

       发送出去。


       随着各种开源项目和“手到擒来”的工具的多样和丰富,造就了能力上的两级分化,厉害的很厉害,平庸的依旧平庸,你属于哪一类大笑


       Gensee 移动sdk用到的内容协议具体再说,标准协议:

       RtSdk:RTP HTTP

       PlayerSdk :RTMP,HTTP,HLS

       VodSdk:HTTP,HLS






本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vs点击方法跳不到对于的地方_内脏脂肪怎么测?这个方法也太方便了!| EASD 2020...

我马上开始减肥还不行么&#xff1f;秋天——丰收的日子&#xff0c;看着肥美的鱼蟹&#xff0c;软糯的栗蓉&#xff0c;甜美的桂花糕&#xff0c;不认真贴秋膘都对不起这么丰盛的美食&#xff01;等等&#xff0c;别想了&#xff0c;看看肚子上层层叠起的肥肉&#xff0c;量量…

Gensee Android SDK(一)组成结构

在分支平台Android上sdk&#xff0c;基本主线不会变&#xff0c;变的只是与平台相关的部分&#xff0c;例如视频采集、音频采集、权限等。 按功能分类分为 RtSDK 重点是可以支持视频互动、发&#xff08;控制&#xff09;直播的能力。接口功能上基本上等同于PC客户端。 可以做…

python中msg是什么意思_python下载.msg文件的附件

def get_attachments(file_name, path_name):"""获取.msg文件内的附件:param file_name: .msg文件路径:param path_name: 附件存放目录:return: None"""outlook win32com.client.Dispatch("Outlook.Application").GetNamespace("…

云服务器Ubuntu系统安装apache2发生“E: Unable to locate package”

Ubuntu安装apache2发生“E: Unable to locate package”云服务器安装apache2 出错E: Unable to locate package安装apache2测试apache2安装云服务器安装apache2 出错E: Unable to locate package 最近买了个云主机&#xff0c;操作系统由centos换成Ubuntu的之后&#xff0c;先…

python 构造函数继承_Python多重继承的异构构造器

在Python里面&#xff0c;如果你使用上Qt&#xff0c;SQLAlchemy&#xff0c;Twisted之类各种大型类库时候&#xff0c;有时候多重继承Multiple Inheritance是个简单的解决方法&#xff0c;但是多重继承的复杂性总容易造成误解和疑惑。一般“常识”说&#xff0c;使用super访问…

Android OpenGL Cannot create GL program: 0 GL error: 1282

Android OpenGL create GL program: 0 & GL error: 1282 快速解决 1. 使用GLSurfaceView的话 请在继承类中合适的地方(一般是构造函数里面)设置当前的clientversion 为 2 具体代码&#xff1a; setEGLContextClientVersion(2);2. 使用自己构建的opengl环境的话 请在创…

pythoncsv格式列变换_用Python将csv行转换为列

关于如何使用zip合并数据以及转置列表的一些提示。这听起来像是如何转置csv是你真正的问题。如何转置csv的答案是将其放入列表列表(例如通过csv模块)&#xff0c;然后将其转置并写回文件(如果需要)。在row1 [1,2,3]row2 [a, b, c]list(zip(row1, row2))Out[45]: [(1, a), (2,…

Android DDMS的打开以及查看手机页面布局层次

ddms 查看android的界面布局层次 有时候看到一个比较好的界面或体验好的界面&#xff0c;就忍不住想看看其实现结果&#xff0c;那么可以通过DDMS工具来看相连设备层次以及使用哪些view。 上图是查看微信布局展现。说明&#xff0c;这里查看的就是显示在当前屏幕上的界面&am…

python转换窗口无响应_Tkinter窗口显示(没有响应),但代码正在运行

我有一个程序&#xff0c;在你点击一个操作按钮后运行一个很长的过程。当进程运行时&#xff0c;根窗口会说它没有响应&#xff0c;即使我知道程序是在后台运行的。这个程序将发布给我的几个同事&#xff0c;我想确保他们看到这个时不会惊慌失措&#xff0c;关上窗户。我的解决…

mac os11以下安装Xcode

前段时间mac重装系统&#xff0c;所有软件都清除了&#xff0c;下载从商店里面安装Xcode 12.5.1版本&#xff0c;直接提示“要求mac os 11.0或更高版本&#xff0c;于是乎开始升级mac os&#xff0c;检查更新并更新之后&#xff0c;最新版本就是macOS Catalina10.15.7&#xff…

fft之后求模值和相位_如何利用相位噪声测量表征时钟抖动来加速设计验证过程...

随着数据速率的提高&#xff0c;时钟抖动分析的需求也在与日俱增。在高速串行数据链路中&#xff0c;时钟抖动会影响发射机、传输线和接收机的数据抖动。时钟质量保证的测量方法也在不断发展。目前的重点是针对比特误码率(BER) 建立时钟性能和系统性能之间的直接联系。今天我们…

Android Studio 内存不足

android studio 4.2.2 编译的项目的时候&#xff0c;出现的内存不足问题&#xff0c;实际上android studio会有引导设置内存大小&#xff0c;可能都不太在意在哪个地方&#xff0c;设置完就完事了&#xff0c;在不提示的情况下可能找不到在哪设置&#xff0c;在此记录一笔。 出…

python寻找多数元素_寻找多数元素

定义&#xff1a;序列中的多数元素是指在一个元素个数为n的序列中&#xff0c;多数元素出现次数大于[n/2].寻找元素方法很多&#xff1a;1.可以暴力搜索&#xff0c;将每个元素都与其他元素作比较&#xff0c;然后统计该元素出现的次数&#xff0c;时间复杂度为O(n2)&#xff1…

mac 电脑安装 svn和brew

快速解决&#xff1a; 1. 安装svn brew install subversion 2. 安装brew 记得多尝试分别选择不同的下载源&#xff0c;鄙人最终是选择 “3 北京外国语大学” 成功的。 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"折…

监控mysql锁定状态_企业实战Mysql不停机维护主从同步

实战环境&#xff1a;Mysql-5.7Xtrabackup-2.4Xtrabackup 介绍&#xff1a;Percona XtraBackup是一款基于MySQL的服务器的开源热备份实用程序&#xff0c;在备份过程中不会锁定数据库。它可以备份来自MySQL5.1&#xff0c;5.5&#xff0c;5.6和5.7服务器上的InnoDB&#xff0c;…

Mac AndroidStudio常用快捷键

mac电脑的键盘修饰符对应关系 Command&#xff08;或 Cmd&#xff09;⌘Shift ⇧Option&#xff08;或 Alt&#xff09; ⌥Control&#xff08;或 Ctrl&#xff09;⌃Caps Lock ⇪esc ⎋Fn F6-F12的使用 单独按F6-F12&#xff0c;一般是控制电脑的音量、音乐上下曲的切换&a…

python缺失值类型与分析_3.1.1 缺失值分析

数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失&#xff0c;两者都会造成分析结果的不准确&#xff0c;以下从缺失值产生的原因及影响等方面展开分析。(1)缺失值产生的原因1)有些信息暂时无法获取&#xff0c;或者获取信息的代价太大。2)有些信息是被遗漏的。可能是因…

为什么Mac source ~/.bash_profile只生效一次(macOS Catalina)

目录Mac环境变量的设置每次都要执行source ~/.bash_profile才有效解决方法(任选一种即可)一. 环境变量添加到.zshrc二 .zshrc中 添加source ~/.bash_profile三 切换mac的shell是什么原因Mac环境变量的设置 开发中对环境变量的修改和增加比较普遍&#xff0c;此处做为记录也供大…

三相四线怎样查漏电_老电工支招!漏电保护器的接线方法

家居装修中&#xff0c;电路问题是比较重要的&#xff0c;尤其是现在家居中使用的电器越来越多&#xff0c;所以漏电保护器是一定要的&#xff0c;能有很好的保护作用&#xff0c;那漏电保护器接线图是怎样的呢&#xff0c;漏电保护器接线方法以及注意事项有哪些&#xff0c;快…

view.post不执行的坑点

view.post没执行&#xff0c;runOnUiThread&#xff0c;Handler 目录坑点处理原因经历复盘6.0版本10.0版本总结坑点 子线程执行view.post(Runnable) 部分 手机没有效果。 usernameEditText.post(new Runnable() {Overridepublic void run() {usernameEditText.setText("…