realm

P2P技术详解(三):P2P技术之STUN、TURN、ICE详解

吃可爱长大的小学妹 提交于 2020-11-03 07:55:58
本文是《P2P理论详解》系列文章中的第2篇,总目录如下: 《 P2P技术详解(一):NAT详解——详细原理、P2P简介 》 《 P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解 》 《 P2P技术详解(三):P2P技术之STUN、TURN、ICE详解 》( 本文 ) ➋ P2P相关的其它资源: 《 通俗易懂:快速理解P2P技术中的NAT穿透原理 》 《 最新收集NAT穿越(p2p打洞)免费STUN服务器列表 [附件下载] 》 《 一款用于P2P开发的NAT类型检测工具 [附件下载] 》 另外,如果你觉得本文对网络通信的基础知识讲的不够系统话,可继续看看下面这些精华文章大餐。 ➊ 网络编程基础知识: 《 TCP/IP详解 - 第11章·UDP:用户数据报协议 》 《 TCP/IP详解 - 第17章·TCP:传输控制协议 》 《 TCP/IP详解 - 第18章·TCP连接的建立与终止 》 《 TCP/IP详解 - 第21章·TCP的超时与重传 》 《 通俗易懂-深入理解TCP协议(上):理论基础 》 《 通俗易懂-深入理解TCP协议(下):RTT、滑动窗口、拥塞处理 》 《 理论经典:TCP协议的3次握手与4次挥手过程详解 》 《 理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程 》 《 计算机网络通讯协议关系图(中文珍藏版) 》 ➋

写了这么多年代码,这样的登录方式还是头一回见!

匆匆过客 提交于 2020-11-03 07:20:28
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 Spring Security 系列还没搞完,最近还在研究。 有的时候我不禁想,如果从 Spring Security 诞生的第一天开始,我们就一直在追踪它,那么今天再去看它的源码一定很简单,因为我们了解到每一行代码的缘由。 然而事实上我们大部分人都是中途接触到它的,包括松哥自己。所以在阅读源码的时候,有时候会遇到一些不是那么容易理解的东西,并不是说这个有多难,只是我们不了解 N 年前的开发环境,因此也就不容易理解某一行代码出现的意义。 所以为了搞透彻这个框架,有时候我们还得去了解之前发生了什么。 这就跟学 Spring Boot 一样,很多小伙伴问要不要跳过 SSM ,我说不要,甚至还专门写了一篇文章( Spring Boot 要怎么学?要学哪些东西?要不要先学 SSM? ),跳过了 SSM ,Spring Boot 中的很多东西就无法真正理解。 扯远了。。。 Spring Security 中对 HttpServletRequest 请求进行了封装,重写了 HttpServletRequest 中的几个和安全管理相关的方法,想要理解 Spring Security 中的重写,就要先从 HttpServletRequest 开始看起。 有小伙伴可能会说

【Android开发】【数据库】Realm For Android

和自甴很熟 提交于 2020-11-03 05:40:10
目录 1、Realm简介 2、环境配置 3、初始化Realm 4、创建实体 5、增 6、删 7、改 8、查 9、异步操作 10、数据库数据更新监听 11、json转对象,插入数据库 12、Demo地址 https://github.com/baitutang1221/DemoRealm-master ========================================== ####一、Realm简介 数据库Realm,是用来替代sqlite的一种解决方案,它有一套自己的数据库存储引擎,比sqlite更轻量级,拥有更快的速度,并且具有很多现代数据库的特性,比如支持JSON,流式api,数据变更通知,自动数据同步,简单身份验证,访问控制,事件处理,最重要的是跨平台,目前已有Java,Objective C,Swift,React-Native,Xamarin这五种实现。 ####二、环境配置 (1). 在项目的build文件加上 classpath "io.realm:realm-gradle-plugin:2.0.2" buildscript { repositories { jcenter() } dependencies { classpath "io.realm:realm-gradle-plugin:2.0.2" } } (2) 在app的build文件加上

教你 Shiro + SpringBoot 整合 JWT

坚强是说给别人听的谎言 提交于 2020-10-28 10:42:51
本篇文章将教大家在 shiro + springBoot 的基础上整合 JWT (JSON Web Token) 如果对 shiro 如何整合 springBoot 还不了解的可以先去看我的上一篇文章 《教你 Shiro 整合 SpringBoot,避开各种坑》 附上源码: https://github.com/HowieYuan/shiro JWT JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。 我们利用一定的编码生成 Token,并在 Token 中加入一些非敏感信息,将其传递。 一个完整的 Token : eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcm9tX3VzZXIiOiJCIiwidGFyZ2V0X3VzZXIiOiJBIn0.rSWamyAYwuHCo7IFAgd1oRpSP7nzL7BF5t7ItqpKViM 在本项目中,我们规定每次请求时,需要在请求头中带上 token ,通过 token 检验权限,如没有,则说明当前为游客状态(或者是登陆 login 接口等) JWTUtil 我们利用 JWT 的工具类来生成我们的 token,这个工具类主要有生成 token 和 校验 token 两个方法 生成 token 时,指定 token 过期时间

深入浅出FE(十三)前端nexus3 Yarn离线部署npm仓库

纵饮孤独 提交于 2020-10-15 21:32:30
Table of Contents 一、前提 二、nexus3 npm仓库搭建 Nexus Repository Manager 中添加 npm Proxying npm Registries Private npm Registries Grouping npm Registries 设置权限 发布到hosted 三、下载项目需要的npm包 四、批量上传npm包到仓库 五、参考资料 网上的很多教程都是服务器可以连接外网的前提下撰写的,但看过无数教程还没有一个专门针对服务器离线环境如何部署一个npm仓库。 一、前提 服务器离线、仓库离线 二、nexus3 npm仓库搭建 Nexus Repository Manager 中添加 npm 如果点击: 这里有三个类型的npm选项: 附上某歌翻译: Proxying npm Registries 为了减少开发人员和CI服务器的重复下载量并提高下载速度,您应该对托管在 https://registry.npmjs.org 上的注册表进行代理。 默认情况下,npm直接访问此注册表。 您还可以代理您需要的任何其他注册表。 要代理外部npm注册表,您只需创建一个新的npm(代理),如“存储库管理”中所述。 最小配置步骤是: 定义名称 定义远程存储的URL,例如 https://registry.npmjs.org 选择存储的Blob存储