前言 对于B/S模式的项目,基础的场景都是客户端发起请求,服务端返回响应结果就结束了一次连接:但在很多实际应用场景中,这种简单的请求和响应模式就显得很吃力,比如消息通知.监控看板信息自动刷新等实时通信场景,小伙伴们肯定会想到轮询或WebSocket的方式来搞定,可是单纯用轮询的方式有点耗资源,只用WebSocket的方式又有些浏览器或其他客户端不支持,所以如果自己从头来写的话,很多细节还得做处理:这个时候SignalR就该站出来了,封装的很给力,直接使用就行. 正文 1. SignalR简介 S…
说明:本篇文章与上篇文章 实现服务器端与客户端的实时通信 SignalR(1) 基本代码类似,只是做了些处理 高频 的改动. 一.本文出处:SignalR 实例介绍 (建议看原著里面有DEMO下载) 二.这篇文章介绍如何利用 VS2012 创建一个简单的实时高频反馈系统,建好后的样子如下:拖动某个窗口的红色框,其余窗口的红色框跟着运动. 三.Demo 创建 1.新建项目以及新建完成后的目录结构如上篇文章所示(项目名称为 MoveShape): 2.安装 SignalR 程序包,该包实现了服务端与…
前面两篇文章使用了Ajax long polling和WebSocket两种常用的Web实时通信方式构建了简单的聊天程序. 但是,由于浏览器的兼容问题,不是所有的环境都可以使用WebSocket这种比较好的方式.也就是说,根据浏览器或者环境的不同,客户端和服务端可能需要使用不同的通信方式. Socket.IO简介 为了解决上面的问题,Socket.IO就出现了. Socket.IO是一个基于Nodejs的,用于实时通信的一个软件包(包括client端和server端),Socket.IO完全由J…
前面两篇文章使用了Ajax long polling和WebSocket两种常用的Web实时通信方式构建了简单的聊天程序. 但是,由于浏览器的兼容问题,不是所有的环境都可以使用WebSocket这种比较好的方式.也就是说,根据浏览器或者环境的不同,客户端和服务端可能需要使用不同的通信方式. Socket.IO简介 为了解决上面的问题,Socket.IO就出现了. Socket.IO是一个基于Nodejs的,用于实时通信的一个软件包(包括client端和server端),Socket.IO完全由J…
前情提要 「 话说上回说到!那WebSocket大侠,巧借http之内力,破了敌阵的双工鸳鸯锁,终于突出重围. 然而玄难未了,此时web森林中飞出一只银头红缨枪,划破夜色. "莫非!?" websocket大侠喃喃念道,"恐怖如斯,你莫不是就是那个手使单向追魂枪的..." "正是在下!",那人厉声喝道.只见那胸前的纹章铭刻着几个洋文—— 读作"EventSource"!」 上一篇文章请看这里:论一个低配版Web实时通信库是如何…
Golang 以前的依赖管理一直饱受诟病,社区的方案也层出不穷,比如 vendor, glide, godep 等.之前的依赖管理一直是依靠 GOPATH 或者将依赖代码下载到本地,这种方式都有劣势.另外由于特殊的网络环境,导致谷歌的大部分包都没有办法下载.从 Golang 1.11 开始,官方已内置了更为强大的 Go modules 来一统多年来 Go 包依赖管理混乱的局面,从 1.13 开始将成为默认配置.配合 Goproxy 来使用来说,真香.这次配合我之前的 Golang 开源项目 GS…
目录 一.background:设置心水背景图 安利理由: 安装及设置步骤: 设置过程中使用的代码: 成果展示: 注意: 二.Material Theme(VSCode主题)+Material Icon Theme(文件图标主题) 安利理由: 安装步骤及设置: (一)Material Theme安装 注意: (二)Material Icon Theme安装 三.Chinese (Simplified) Language Pack for Visual Studio Code:中文简体语言包 安利…
大家都知道,Redis Desktop Manager 是一款非常好用的 Redis 可视化客户端工具,但可惜的是 v0.9.4 版本之后需要收费了: 这个工具不再免费提供安装包了,要对所有安装包收费,收费还不便宜啊,但是源码依旧是公开的,要使用就必须要自行编译. 市面上也有一些破解版本或是别人编译好的版本,但安全性难以保证,不付费,整天折腾安装和更新,始终是下策,有免费开源的好工具为啥不用. 今天我就要推荐一个免费.开源.好用的. 另一个 Redis 桌面管理工具 之前也有粉丝问我有什么好用的…
公司有几个老古董项目,应该是 10 年前开发的了,有一个是 JSP + Servlet,有一个还用的 SSH 框架,打包用的 Ant,是有多老啊,我想在座的各位很多都没听过吧. 为了持续集成.持续部署的需要,需要把这些老古董项目全改造成 Maven 管理,下面开搞. 快速创建一个 Maven 项目 Maven Archetype 介绍 如何快速创建一个 Maven 项目,可以通过 Maven 的 Archetype 来进行创建,Archetype 是 Maven 提供的各种各样的工程模板,通过这…
花下猫语:Python 中很多内置函数的作用都非常大,比如说 enumerate() 和 zip(),它们使得我们在作迭代操作时极为顺手.这是一篇很多年前的 PEP,提议在 Python 2.3 版本中引入 enumerate(),该文档整合了其它几篇 PEP 的想法(包括当时新引入的迭代器与生成器),提出了更好的实现方案以及函数名.经过这么多年的发展,enumerate() 不可避免地有了一些变化,但不变的是,它跟 19 年前一样,还是很有必要.很好用,用着真香! PEP原文: https:/…
架构设计(ASP.NET MVC+Knockout+Web API+SignalR) 架构设计(ASP.NET MVC+Knockout+Web API+SignalR) 2014-01-16 18:12 by 圣殿骑士, 2437 阅读, 29 评论, 收藏, 编辑 最近忙于重构项目的架构设计,没有时间发博客,也没有时间回复邮件及博文评论,忘各位见谅: 今天先发布架构设计图,同样没有时间写相关的介绍也没有时间回复评论,所以就不发在首页,希望给看到的朋友一些参考,同时也希望大家给点意见! 作者:…
从Eclipse切换到IDEA工具,哎~真香!(图) 个人观点:IDEA工具用了就回不去了!!!对比很多人写,我就不赘述了.我在这里主要介绍一下IDEA工具的一些使用上的技巧,毕竟我开始学习java的时候也是先用的eclipse,因为我接触的视频和教材上都是用的它.后来我工作了,有一次看见公司有同事使用IDEA工具.他在给我们讲解程序的时候,各种快捷键灵活运用,搜索各种方法,在代码间自由跳转,仿佛是“俯视”整个工程.这样的流畅度着实叫人艳羡,我实在是抵挡不住这“真香”的诱惑.言归正传:我把自己在…
目录 git 日常使用从入门到真香 一.Git简介 二.Git常用命令 三.git操作流程 四.报错处理 git 日常使用从入门到真香 一.Git简介 Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. 二.Git常用命令 - git status #查看文件状态 - git add . #添加文件到云端 - git commit -m ''提交记…
引论 simple-socket是我写的一个"低配版"的Web实时通信工具(相对于Socket.io),在参考了相关源码和资料的基础上,实现了前后端实时互通的基本功能 选用了WebSocket ->server-sent-event -> AJAX轮询这三种方式做降级兼容,分为simple-socket-client和simple-socket-server两套代码, 并实现了最简化的API: 前后端各自通过connect事件触发,获取各自的socket对象 前端通过soc…
如何实现一个左中右的布局 在flex出现之前 #box{ color: white; } #left{ float: left; width: 30%; background-color: red; } #right{ float: right; width: 20%; background-color: green; } #center{ background-color: blue; overflow:hidden; /* 去除浮动换成 margin: 0 20% 0 30%; 效果一样 *…
Chladni Figure CodeForces - 1162D Inaka has a disc, the circumference of which is nn units. The circumference is equally divided by nn points numbered clockwise from 11 to nn, such that points ii and i+1i+1 (1≤i<n1≤i<n) are adjacent, and so are poin…
曾经你说chrome浏览器天下第一,现在你却说Microsoft edge真香!呸,渣男!! 一个月前我每天打卡搜索的时候,老是有微软新版浏览器的广告.我刚才是内心其实是抵触的,直到我发现了它的奇妙之处. 这是原始的: 是经过我diy之后的界面. 看到最后教你如何白嫖youtube,p站,reddit等网站.网站秒开,1080毫无压力.先放个图 **ps: **我个人比较喜欢对此美学,所以图标都是色彩相似对称的,感觉这样很舒服. 谷歌浏览器有什么缺点呢? 那就是安装插件不方便.你需要自己有tec…
使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发系列文章 ~ JavaFX桌面应用开发-HelloWorld JavaFX布局神器-SceneBuilder JavaFX让UI更美观-CSS样式 JavaFX桌面应用-为什么应用老是"未响应" JavaFX桌面应用-MVC模式开发,"真香" (本文) JavaFX桌面…
你只会用 StringBuilder/ StringBuffer 拼接字符串? 那你就 OUT 了!! 如果需要拼接分隔符的字符串,建议使用 Java 8 中的这款拼接神器:StringJoiner,你值得拥有. StringJoiner 基本使用 字面上理解就是用来拼接字符串的,一般需要分隔符进行拼接,如: hello, guys, 欢迎关注公众号Java技术栈 这种三段式由 "," 分隔的字符串,在 Java 8 之前要使用 StringBuilder/ StringBuffer…
前言 最近接了一个活儿,是用WebStorm开发一个基于VUE的网站,但是我真的是几乎没接触过VUE相关的项目实践,更别说用WebStorm在实际中的应用,之前只是听朋友说多好用,但是,因为现有工具不影响工作效率,所以也就没有更换过,这次,没办法,我也不知道脑子咋的了,就接了这个活,学吧,正常的安装没啥问题,但是期间遇到了一些问题 今天把遇到的问题以及解决方案进行整理和总结,希望对大家有所帮助 下载环境 下载并安装webstorm了以后将项目从git上检出发现不能跑,后查询了相关资料发现由于VU…
Shell看起来只是一个黑黑的命令框,刚开始接触会觉得很丑,毕竟与Win/Mac的华丽界面比起来,命令行终端直接可以丑拒了.但是,实际上它的功能要强大得多,毕竟Linux一开始就是广泛应用于服务器,通过命令行终端进行交互,命令行程序非常丰富,且功能强大,以后你会慢慢爱上终端的,毕竟先通过程序菜单找到要运行的程序,然后再点击相应的功能菜单来实现的方式,只能说是降低了操作的入门门槛,真正的强大通过输一个命令,简单改一下参数就可以快速运行,这才是王道啊!没有人会违背真香定律,是的,没有! 下面通过简单…
Web 实时通信方案 All In One HTTP 轮询, 单向通信,开销大 HTTP 长轮询, 单向通信,开销较小 WebSocket,双向通信,开销小 (TCP 高延迟,保证数据完整性) Server Push,单向通信,开销小 WebRTC 实时音频,视频,H5 直播 (UDP 低延迟,存在丢帧现象) refs https://caniuse.com/websockets https://www.cnblogs.com/xgqfrms/p/9102179.html https://www…
市场上面有句名言:"人赚不到自己认知以外的财富",这在数字加密上也是共通的.早在本月12日,也就是前天,NGK官方发行的第N波利好---SPC侧链代币空投已经陆续发放了,NGK以及SPC社区一片沸腾,之前对本次SPC侧链代币空投糖果持质疑态度的生态建设者在领到这波空投糖果后也是发出真香的声音. 要知道吗,仅仅本次的空投总价值就高达310万美金,这个数值在钱是大风刮来的币圈也算得上不低了,当然这对于背靠大金主的NGK项目方只是九牛一毛,因为SPC侧链代币总发行量为一个亿,空投数字是两百万…
今天这篇文章介绍一下Seata如何实现TCC事务模式,文章目录如下: 什么是TCC模式? TCC(Try Confirm Cancel)方案是一种应用层面侵入业务的两阶段提交.是目前最火的一种柔性事务方案,其核心思想是:针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作. TCC分为两个阶段,分别如下: 第一阶段:Try(尝试),主要是对业务系统做检测及资源预留 (加锁,锁住资源) 第二阶段:本阶段根据第一阶段的结果,决定是执行confirm还是cancel Confirm(确认):执行…
不用不知道,一用香到爆. 老哥是个屌丝前端,但也想写点web应用耍一耍.之前弄过了NodeJs,也弄过JAVA,最近由于写游戏的原因用C#,索性上手一波asp.net core. 这篇博客记录的是,如何在分分钟内搭建一个博客程序.包括: 发博客 看博客 用户注册登录 用户权限设置. 其中用的就是微软提供的EntityFrame和Identity类库.简直他妈爽出翔. 1.快速生成一个项目 反正增删改查就那么回事儿,快速生成一个项目模板才是主要的. 我不想创建一个带Razor页面的项目.因为我只需…
从现在开始相关文章请到: http://lko2o.com/moon 接着上一篇:<ASP.NET SignalR系列>第三课 SignalR的支持平台 一.概述 SignalR常常依托于ASP.NET应用程序运行于IIS中,但它还可以自我托管(比如作为console winform.Windows service).只要我们使用self-host库就可以了. 该库向所有的SignalR 2库一样,构建于OWIN (Open Web Interface for .NET).OWIN定义了一个在…
一.本文出处:SignalR 实例介绍 (建议看原著里面有DEMO下载) 二.这篇文章介绍如何利用 VS2012 创建一个简单的实时聊天系统,建好后的样子如下(模拟三个在线用户):    三.Demo 创建 1.新建项目以及新建完成后的目录结构如下图所示:         2. 安装 SignalR 程序包,该包实现了服务端与客户端的通信. 工具----> NuGet 程序包管理器----> 程序包管理器控制台 执行命令行:install-package Microsoft.AspNet.Si…
本文由云+社区发表 在前端面试中,有一个必问的问题:请你谈谈cookie和localStorage有什么区别啊? localStorage是H5中的一种浏览器本地存储方式,而实际上,cookie本身并不是用来做服务器存储的.但在 localStorage 出现之前,cookie被滥用当做了存储工具,什么数据都放在cookie中,即使这些数据只在页面中使用.而不需要随请求传送到服务端(当然cookie也做了一些限制:大小受限.每个域名下生成的cookie数量受限).就像CSS中的float,最初被…
前言 用过spring的人都知道,spring简单的通过注解就可以完成很多事情,但这些东西是如何实现的呢以及如何应用到我们自己的代码中?接下来,让我们一起开启注解的旅程. 1. @Controller 标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象. @Controller public class TestController { @RequestMapping("/test") public String test(Map<St…
本篇文章介绍链路追踪的另外一种解决方案Skywalking,文章目录如下: 什么是Skywalking? 上一篇文章介绍了分布式链路追踪的一种方式:Spring Cloud Sleuth+ZipKin,这种方案目前也是有很多企业在用,但是作为程序员要的追逐一些新奇的技术,Skywalking作为后起之秀也是值得大家去学习的. skywalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 , 2017年加入Apache孵化器.短短两年就被Apache收入麾下,实力可见一斑.…