跨平台

[导入]跨平台跨服务器跨网站SSO(单点登录)的方案

和自甴很熟 提交于 2020-02-12 05:38:17
最近在研究 SSO ,看到各种复杂的解决方案觉得很疑惑,自己想出了个简单有效的方案,大家来评评有什么问题吗? 服务器 A :网站 A 服务器 B :网站 B 服务器 C :验证网站(验证表中有 UID 和 KEY 两个字段)。 1. 用户打开网站 A 的页面 http:// 服务器 A/a.aspx ,检测发现网站 Session 中没有存储用户名 UID 。 2. 系统转到验证服务器登录页面,并在 QUERYSTRING 中附加前一个页面的 URL 地址。比如 http:// 服务器 C/login.asp?URL=http:// 服务器 A/a.aspx 3. 在验证服务器登录成功后更新验证服务器的 Session (超时设置为足够长,比如 1 天)。然后生成一个 GUID 值,写入验证表。最后,把这个 GUID 值和 UID 保存到一个类中序列化后附加在 URL 中返回网站 A 的那个页面。比如 http:// 服务器 A/a.aspx? token =sadhsagdkjasgyugd7d8yweihasdiuhagsdiuashdhaiushdi 4. 网站 A 的页面读取 QUERYSTRING ,然后反序列化出一个类,读取类的 UID 和 KEY 信息。然后,从数据库中查找匹配的记录,如果找到了则表明登录成功,并把这条记录的 KEY 更新成另外一个 GUID

Java学习笔记

*爱你&永不变心* 提交于 2020-02-11 01:25:45
Java学习第一课 Day_01 近日报了中公的Java培训班,但是因为最近新型冠状病毒肆虐,没有办法前往北京中 公基地进行学习,所以学校给我们报了名的 学生安排了为期N久的线授课,进行Java基础的教授和培训。今天是开课第一天,写下我今日学习心得。 Java概述 1.定义:Java是一种面向对象、支持泛型编程也支持跨平台技术的一门高级编程语言。(简言之:Java是一门高级编程语言) 由定义可以看出Java的特点有三点: 【1】面向对象 【2】支持泛型编程 【3】跨平台 适用范围:移动端的开发和企业级的WEB开发。 起源:java起源1994年和1995年。詹姆斯,高斯林团队研发最终搞出来一段小demo,后来demo开源到网上,通过大量程序员的完善 和补充最终形成了初期的java【后期更名】。 发展历程: sun公司他就在1996年进行相关的整理,发布开发人员可以使用的开发环境JDK1.0 1997年JDK1.1版本 1998年JDK1.2版本 2000年JDK1.3版本2002年 JDK1.4版本 2004年JDK1.5版本【增加泛型等很多好用的技术】 2006年JDK1.6版本 2009年的sun公司被Oracle公司收购 2011年才发布JDK1.7版本 2014年发布JDK1.8版本 2017年JDK1.9版本 2018年JDK10JDK11 2019年JDK12JDK13

如何设计一款跨平台低延迟的RTMP/RTSP直播播放器

流过昼夜 提交于 2020-02-08 12:54:13
开发背景 2015年,当我们试图在市面上找一款专供直播播放使用的低延迟播放器,来配合测试我们的RTMP推送模块使用时,居然发现没有一款好用的,市面上的,如VLC或Vitamio,说白了都是基于FFMPEG,在点播这块支持格式很多,也非常优异,但是直播这块,特别是RTMP,延迟要几秒钟,对如纯音频、纯视频播放,快速启播、网络异常状态处理、集成复杂度等各方面,支持非常差,而且因为功能强大,bug很多,除了行业内资深的开发者能驾驭,好多开发者甚至连编译整体环境,都要耗费很大的精力。 我们的直播播放器,始于Windows平台,Android和iOS同步开发,基于上述开源播放器的各种缺点,我们考虑全自研框架,确保整体设计跨平台,再保障播放流程度的前提下,尽可能的做到毫秒级延迟,接口设计三个平台统一化,确保多平台集成复杂度降到最低。 整体方案架构 RTMP或RTSP直播播放器,目标很明确,从RTMP服务器(自建服务器或CDN)或RTSP服务器(或NVR/IPC/编码器等)拉取流数据,完成数据解析、解码、音视频数据同步、绘制。 具体对应下图 “接收端” 部分: ​ 初期模块设计目标 自有框架,易于扩展,自适应算法让延迟更低、解码绘制效率更高; 支持各种异常网络状态处理,如断网重连、网络抖动等控制; 有Event状态回调,确保开发者可以了解到播放端整体的状态,从纯黑盒不可控

如何设计一款跨平台低延迟的RTMP/RTSP直播播放器

可紊 提交于 2020-02-08 02:59:58
开发背景 2015年,当我们试图在市面上找一款专供直播播放使用的低延迟播放器,来配合测试我们的RTMP推送模块使用时,居然发现没有一款好用的,市面上的,如VLC或Vitamio,说白了都是基于FFMPEG,在点播这块支持格式很多,也非常优异,但是直播这块,特别是RTMP,延迟要几秒钟,对如纯音频、纯视频播放,快速启播、网络异常状态处理、集成复杂度等各方面,支持非常差,而且因为功能强大,bug很多,除了行业内资深的开发者能驾驭,好多开发者甚至连编译整体环境,都要耗费很大的精力。 我们的直播播放器,始于Windows平台,Android和iOS同步开发,基于上述开源播放器的各种缺点,我们考虑全自研框架,确保整体设计跨平台,再保障播放流程度的前提下,尽可能的做到毫秒级延迟,接口设计三个平台统一化,确保多平台集成复杂度降到最低。 整体方案架构 RTMP或RTSP直播播放器,目标很明确,从RTMP服务器(自建服务器或CDN)或RTSP服务器(或NVR/IPC/编码器等)拉取流数据,完成数据解析、解码、音视频数据同步、绘制。 具体对应下图 “接收端” 部分: 初期模块设计目标 自有框架,易于扩展,自适应算法让延迟更低、解码绘制效率更高; 支持各种异常网络状态处理,如断网重连、网络抖动等控制; 有Event状态回调,确保开发者可以了解到播放端整体的状态,从纯黑盒不可控

[转帖]DotNetCore跨平台~System.DrawingCore部署Linux需要注意的

隐身守侯 提交于 2020-02-06 03:19:27
DotNetCore跨平台~System.DrawingCore部署Linux需要注意的 https://www.bbsmax.com/A/QV5ZemYVJy/?tdsourcetag=s_pcqq_aiomsg 你在windows上使用图像组件没有任务问题,但部署到linux之后,将注意以下几点: 安装nuget包ZKWeb.System.Drawing 项目里还是引用System.DrawingCore,这点不用改 安装gdiplus插件,这个需要根据linux类型不同,有不同的方法,大叔做了一下总结 安装gdiplugs的方法 大叔总结的方法 ubuntu && debian sudo apt-get install libgdiplus cd /usr/lib sudo ln -s libgdiplus.so gdiplus.dll centos yum whatprovides libgdiplus && yum install -y epel-release && yum install -y libgdiplus-.el7.x86_64 && yum install -y libgdiplus-devel 官方提供的方法: Ubuntu 16.04: apt-get install libgdiplus cd /usr/lib ln -s libgdiplus.so

语言跨平台的理解

烈酒焚心 提交于 2020-02-03 17:55:44
什么是平台 我们把 CPU处理器与操作系统的整体 叫平台。 CPU大家都知道,8086,Intel与AMD....,每个CPU使用或相同或不同的指令集。指令集就是cpu中用来计算和控制计算机系统的一套指令的集合。指令集又分为精简指令集(RISC)与复杂指令集(CISC), 每种cpu都有其特定的指令集。 操作系统是充当用户和计算机之间交互的界面软件,不同的操作系统支持不同的CPU,严格意义上说是不同的操作系统支持不同CPU的指令集。 语言跨平台 我们说的语言跨平台是编译后的文件跨平台,而不是源程序跨平台,如果是源程序,任何一门语言都是跨平台的语言了。所谓“不跨平台”,只是编译出来的目标代码是机器相关的而已。 C语言为什么不能实现跨平台 我们知道,只要是用标准C开发的程序,使用不同的编译器编译后的可执行文件是可以在对应平台运行的,比如windows可以使用VC编译,那编译后的.exe文件就可以在windows下运行;liunx下可以使用GCC编译,生成的可执行文件就可以在Liunx上运行。 到这里请大家思考一个问题:“VC编译的.exe能在Liunx上运行吗?”,显然是不能的,C语言最后编译出来的二进制文件,不同的CPU识别含义不同, 所以为什么说C语言不能实现跨平台运行,就是因为它编译出来的输出文件的格式,只适用于某种CPU,其他CPU不能识别。 java为什么能实现跨平台

值得学习的C语言开源项目

纵饮孤独 提交于 2020-01-29 12:26:18
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接: http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。 下载链接: http://sourceforge.net/projects/tinyhttpd/ - 3. cJSON cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。 cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。 项目主页: http://sourceforge.net/projects/cjson/ - 4. CMockery

React-native 跨平台原理

你说的曾经没有我的故事 提交于 2020-01-28 12:25:52
1、为什么React native 可以跨平台 其实通过react native的架构图就明白了,下面我们就根据架构图来理解一下为什么react native可以实现跨平台: (1)、React:不同平台上编写基于React的代码,“Learn once, write anywhere”。 (2)、Virtual DOM:相对Browser环境下的DOM而言,Virtual DOM是DOM在内存中的一种轻量级表达方式(原话是lightweight representation of the document),可以通过不同的渲染引擎生成不同平台下的UI,JS和Native之间通过Bridge通信。 (3)、Web/iOS/Android:上层与用户交互的UI界面。 React-Native在JavaScript中抽象操作系统原生的UI组件,代替DOM元素来渲染,使用的是Android或iOS的本地控件,所以在UI渲染上已经非常接近Native App了。尽管业务逻辑代码使用JavaScript,但由于JavaScript是即时编译的,也就是第一次使用时会将JavaScript代码编译成二进制文件,所以JavaScript得运行效率比较高。因此,React Native的运行效率要比基于HTML5、CSS等技术的PhoneGap、AppCan高很多

【yasio】轻量级跨平台socket库v3.31.2发布

我的未来我决定 提交于 2020-01-28 03:20:47
yasio-3.31.2[stable]更新 优化单利类模板实现,详见: https://github.com/simdsoft/yasio/issues/200 修正配置宏拼写YASIO_VERBOS_LOG修正为YASIO_VERBOSE_LOG. 调用bsd socket API getaddrinfo 解析域名时明确传入socktype, 默认值SOCK_STREAM, 避免在mac或linux返回多个相同IP地址 , 详见: https://github.com/simdsoft/yasio/issues/201 增强socket API包装类xxsocket的超时发送和接受API: send_n/recv_n实现, 详见: https://github.com/simdsoft/yasio/issues/202 来源: CSDN 作者: simdsoft 链接: https://blog.csdn.net/xyzzf/article/details/104039227

java的跨平台原理

梦想的初衷 提交于 2020-01-26 14:53:16
跨平台的实现涉及Java虚拟机(Java Virtual Machine,简称 JVM)。 JVM是一个软件,不同的平台有不同的版本。我们编写的Java代码,编译后会生成 .class 文件(字节码文件)。Java虚拟机负责将字节码文件翻译(转译)成特定平台下的 机器码 然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行Java程序。 在这个过程中,Java程序没有任何改变,仅仅是通过JVM,就能在不同平台上运行,真正实现了“一次编译,到处运行”。 JVM是实现跨平台的关键。 注意:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。 不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样 。 所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。 跨平台的是Java程序,不是JVM。 来源: CSDN 作者: Reverse train. 链接: https://blog.csdn.net/xylyaya/article/details/103773583