前言 最近闲暇时间研究Springboot,正好需要用到即时通讯部分了,虽然springboot 有websocket,但是我还是看中了 t-io框架.看了部分源代码和示例,先把helloworld敲了一遍,又把showcase代码敲了一遍,决定做一个总结.本篇文章并不会解释T-io是如何通讯的,而是从showcase这个给t-io初学者写的demo分析showcase的设计思路,以及为什么这么设计等.不过都是我个人理解,疏漏之处在所难免. T-io简单介绍 t-io 源代码:https://g…
更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能.BUG.细节说明,以及升级思考过程! 声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间进行了完善,并且升级到了2.0版本,希望对大家有帮助.仅供开源学习,商用请联系作者. 1.SSIO特点 轻型高性能通信框架,适用于多种应用场,轮询模式.自控模式.并发模式和单例模式. 不光是通讯框架,是设备驱动.IO通道.控制模式场景的协调机制. 支持协议驱动器,可以按规范写标准协议和自定义协议.…
[连载]<C#通讯(串口和网络)框架的设计与实现>-1.通讯框架介绍 [连载]<C#通讯(串口和网络)框架的设计与实现>-2.框架的总体设计 目       录 C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源... 1 1.      SSIO的特点 2.      SSIO概述 3.      SSIO与SIO的区别 4.      控制模式 5.      跨平台Windows和Linux 一.SSIO的特点 轻型高性能通信框架,适用于多种应用场,轮询模…
      物联网涉及到各种设备.各种传感器.各种数据源.各种协议,并且很难统一,那么就要有一个结构性的框架解决这些问题.SSIO就是根据时代发展的阶段和现实实际情况的结合产物. 各种数据信息,如下图:           解决方案,配合SIO使用: 一.SSIO特点 轻型高性能通信框架,适用于多种应用场,轮询模式.自控模式.并发模式和单例模式. 不光是通讯框架,是设备驱动.IO通道.控制模式场景的协调机制. 支持协议驱动器,可以按规范写标准协议和自定义协议. 支持发送数据缓存器,支持命令缓存重…
注:ServerSuperIO 2.0 还没有提交到开源社区,在内部测试!!! 1. ServerSuperIO(SSIO)说明 SSIO是基于早期工业现场300波特率通讯传输应用场景发展.演化而来.为了适应互联网.物联网的发展趋势,以及不同应用场景的需求,SSIO也在不断的进行更新. SSIO是一个跨平台的物联网通讯框架,但是其本质不仅仅是通讯框架,而是设备驱动.串口和网络IO管理器.场景控制器三者之间的协调与调度机制. 物联网是一个发展趋势,如果各种传感器.硬件设备的协议驱动无法统一,那么使…
1.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO) 2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案 3.C#工业物联网和集成系统解决方案的技术路线(数据源.数据采集.数据上传与接收.ActiveMQ.Mongodb.WebApi.手机App) 4.开源地址:https://github.com/wxzz/ServerSuperIO 1.SSIO更新内容: 增加数据分发模式(DeliveryMode),在网络通…
分布式通信框架-RMI讲解 什么是RPC Remote procedure call protocal RPC协议其实是一个规范.常用PRC框架:Dubbo.Thrif.RMI.Webservice.Hessain 网络协议和网络IO对于调用端和服务端来说是透明: 可以简单的理解为用户调用远程方法.不必在乎这个远程方法是怎么出现的,就跟调用本地方法一样.RPC框架做的事就是让我们像使用本地方法一样的去使用远程方法,但是其实RPC框架的底层有自己写好协议以便能远程通讯. 一个RPC框架包含的要素…
socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to current request socket client 2. socket.emit('message', "this is a test"); 3. // sending to all clients except sender 4. socket.broadcast.emit('messag…
http://www.blogjava.net/ghostdog/archive/2008/06/10/MinaVsXsocket.html实在无聊,考虑把当前应用的通讯模式由http移植为socket, 服务器这块因为对NIO并不熟悉,所以考虑使用现成的网络通讯框架进行移植,花了点时间测试比较流行的mina和xsocket.== 相同点 ==  1. 都对nio进行了有效屏蔽, 可以简化开发过程, 对于文本流模式的应用,两者都非常简单,实现一个基本的handle就可以  2. 提供了一些常见的…
Java后台处理框架之struts2学习总结 最近我在网上了解到,在实际的开发项目中struts2的使用率在不断降低,取而代之的是springMVC.可能有很多的朋友看到这里就会说,那还不如不学struts2,直接学习springMVC算了.如果你急于忙着开发项目,这个想法没错.但是,我在这里想说一下的就是,框架其实是对基础代码的封装,对流行功能的优化,为了提高开发效率而存在的.好比武林大会上降龙十八掌,金钟罩,铁布衫,说到底大家还是要靠拳打脚踢的嘛.Struts2,springMVC就是各种招…
现有项目是利用C#的socket与PLC进行实时通讯,PLC有两种通讯模式——常规采集&高频采集. 其中常规采集大概在10ms左右发送一次数据,高频采集大概在2ms左右发送一次数据. 现有代码框架:在与PLC进行连接时,通过建立委托并创建线程的方式,来循环读取数据 //创建委托 public delegate void PLC_HD_Receive(byte[] recv_data); public PLC_HD_Receive PLC_Recv_Delegate_HD; //给委托绑定方法 P…
首先感谢张队@geffzhang公众号转发了上一篇文章,希望广大.neter多多推广dapr,让云原生更快更好的在.net这片土地上落地生根. 目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电商系统(三)--一步一步教你如何撸Dapr 四.通过Dapr实现一个简单的基于.net的微服务电商系统(四)--一步一步教你如何撸Dapr之订阅发布附录:(…
前言 大龄程序员失业状态,前几天面试了一家与医疗设备为主的公司并录取:因该单位涉及串口通讯方面技术,自己曾做过通讯相关的一些项目,涉及Socket的较多,也使用SuperSocket做过一些项目,入职前做了一些准备工作,按照SuperSocket设计思路写了一套串口通讯的框架,最后入职后发现曾一再确定的双休问题不能实现:技术负责人对我的工作安排只是跟着几个年轻程序员熟悉及维护已有程序,入职前所说的某一个新项目也已经有人在做,而且翻看他们的代码质量也很一般,,综合考虑还是放弃了这份工作,5年前开始…
[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 一.概述 经过一个多月晚上的时间,终于把开源物联网通讯框架ServerSuperIO成功移植到Windows10 IOT上,暂时全名:ServerSuperIO.WinIOT(以后可能还会移植到Ubuntu上).以后可以把ServerSuperIO框架应用到嵌入式设备上,移植的成功具有标志性意义,意味着软件和硬件的结合,软硬的结合才具有更强的生命力.为什么我特别愿意干这件事呢?源于我对以前工作的总结,如下图: 二.如果利…
[连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1.2           框架简介... 3 1.3           解决现实问题... 4 1.4           应用场景... 5 1.5           框架应用特点... 6 1.6           框架设计特点... 7 1.7           插件式应用框架... 9 1.8…
如题:国内开源类似QQ的即时通讯框架(endv.cn) 出于在企业管理方面遇到的一些瓶颈问题,特别是在数据收集.统计与分析,大数据处理,时时监控跟踪,风险分析.成本控制等方面遇到的很多数据信息问题等,很多管理软件跟不上且收费高,让管理工作比较艰难的进行. 我理想的管理方式并不是小企业的标准化,也不是大企业的家族化,这两个方面是我从事工作以来最大的体会,我换过几个工作,看到不同的管理模式,国企.民企.政府.私营等单位,从事各方面的事务,曾尝试去改变,但出于力量有限,空降的往往会被地面部队端掉...…
开源的C#TCP通讯框架 原来收费的TCP通讯框架开源了,这是一款国外的开源TCP通信框架,使用了一段时间,感觉不错,介绍给大家 框架名称是networkcomms 作者开发了5年多,目前已经停止开发,对于中小型的应用场景,够用了. 框架的地址是: https://github.com/MarcFletcher/NetworkComms.Net 界面如下: 点那个Download就可以下载源码了 下载之后,解压缩之后的文件列表如下: 可以用VS打开NetworkCommsDotNet工程文件了…
原来收费的TCP通讯框架开源了,这是一款国外的开源TCP通信框架,使用了一段时间,感觉不错,介绍给大家 框架名称是networkcomms 作者开发了5年多,目前已经停止开发,对于中小型的应用场景,够用了. 框架的地址是: https://github.com/MarcFletcher/NetworkComms.Net 界面如下: 点那个Download就可以下载源码了 下载之后,解压缩之后的文件列表如下: 可以用VS打开NetworkCommsDotNet工程文件了 用 vs2010打开,可能…
做个广告先, PHP千人群(6848027) C++群 (1414577) 看雪汇编&反汇编群(15375777) 看雪汇编&反汇编2群(4915800) 转载不一定注明出处,只要推荐下群就可以哈,各位亲~ 微信开发_微信教程__微信通讯框架V1.0 <?php /** * 微信消息框架 by 牛牛 Q 184377367 */ class WeChat { public $token = null; public $msgType = null; public $event = n…
Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了流,然后将这些流还可以写到另外的目的地(文件.内存.控制台.网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分.   二.分类   流的分类,Java的流分类比较丰富,刚接触的人看了后会感觉很晕.流分类的方式很多:   1.按照输入的方向分,输入流和输出流,输入输出的参照对象是…
当前标签: Django   Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0     Python框架之Django学习笔记(十三) 尛鱼 2014-10-08 14:13 阅读:380 评论:0     Python框架之Django学习笔记(十二) 尛鱼 2014-10-07 19:01 阅读:449 评论:0     Python框架之Django学习笔记(十一) 尛鱼 2014-09-28 09:17 阅读:476 评论:0…
Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamWriter操作 内存操作流 管道流 打印流 System对IO的支持 BufferedReader和BufferedWriter 后续 字节流 字节流的操作都是基于InputStream和OutputStream这两个抽象类 InputStream InputStream是字节输入流,主要的功能是从…
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变成字节流的输出对象. InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变成字符流的输入对象. 一般在操作输入输出内容就需要使用字节或字符流,但是有些时候需要将字符流变成字节流的形式,或者将字节…
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件. 字节流和字符流 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件 在java.io包中操作文件内容的主要有两大类:字节流.字符流,两类都分为输入和输出操作.在字节流中输出…
Java IO学习笔记一 File File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅于此,详细见官方文档 构造函数 File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例. File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例. File(String parent, String chil…
ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 namespace Abp.Zero.EntityFramework { /// <summary> /// Extension methods for <see cref="DbModelBuilder"/>. /// </summary> public static class AbpZeroDbModelBuilderExtensions { /// <summary> /…
千里之行,始于足下,先从一个小功能研究起,在菜单管理页面有一个下拉树,先研究下它怎么实现的 1.先找到menu.vue页面 惯性思维先搜索请选择三个字,原来是动态生成的 再向上找DropDown组件,找到了,之前打开时有点重叠,增加margin-left:20px. 不太熟悉slot,:transefer什么意思,之前没用过iView,去查IView资料 trigger代表点击触发,:transfer应该是代表弹出时显示到body内,不然的话可能会导致显示不全.placement显示的位置,修改…
今天发现开源代码从1.0.0.1升级到了1.0.1.0,主要去掉了id主键,升级办法打开DncZeus,右键Git Bash Here,输入以下命令 合并失败,因为上一节尝试修改了几个代码,解决办法 执行 git stash恢复最初版本状态. 然后再执行git merge就可以了 然后按照项目说明里进行数据库升级操作即可. 编译API,启动APP,最后一步,npm run dev 上一篇.开源框架.netCore DncZeus学习(三)增加一个菜单 下一篇.开源框架.netCore DncZe…
框架运行起来了,先尝试增加一个菜单. 本节增加一个菜单名字:公司管理,需要注意一点,所有的name都要保持一致,注意圈中部分.为了防止手敲代码出错,建议复制已有的代代码进行修改(比如这里用的Role页面修改的). 1.router.js添加内容,name为rbac_company_page 2.添加一个vue 3.zh-cn.js添加一个资源 4.添加一个菜单,注意,别名不能随便命名,要和之前name保持一致 5.添加一个权限管理 6.设置权限 7.从新登录,就可以看到了 上一篇.开源框架.ne…
配置连接字符串,update-database,初始数据后,访问报错,提示offset错误.因为本机上使用的sql2008. .net Core 2.X中的EF访问sqlserver2008默认使用的是offset分页,这在sql2008上不支持. .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddDbContext<DncZeusDbContext>(options => options.Us…