《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
来源:互联网 发布:西交大网络导航 编辑:程序博客网 时间:2024/05/30 05:01
《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍
《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。
《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明
《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍
《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。
《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。
《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项
《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
目 录
8.单例通讯模式开发及注意事项... 2
8.1 概述... 2
8.2 通讯机制说明... 2
8.3 设备驱动开发注意事项... 2
8.4 宿主程序服务实例配置注意事项... 3
8.5 单例模式运行效果... 4
8.单例通讯模式开发及注意事项
8.1 概述
单例通讯模式只适用于网络通讯,并且只能增加一个“设备驱动”,这里“设备驱动”是逻辑概念,代表了所有设备或传感器,也就是说所有接到的数据全部分发给这个“设备驱动”。
8.2 通讯机制说明
只有网络通讯时可以使用这种控制模式。在一个服务实例内只能有一个设备驱动,相当于一个设备驱动对应着N多个硬件设备终端。更适合通讯的数据协议有固定的标准,以命令关键字处理不同的数据。适用于高并发的硬件终端设备主动上传数据,服务器端根据数据信息进行处理和返回相应的数据。
通讯结构如下图:
8.3 设备驱动开发注意事项
单例模式的设备驱动开发更简单,如果业务不复杂,那么只涉及到初始化参数、实时数据、协议,以及数据的处理逻辑,更高级的应用会涉及到协议数据过滤(IReceiveFilter接口)、数据转发(IService接口)、数据视图展示(IGraphicsShow接口)等,将在后续的文章中逐一进行介绍。
8.4 宿主程序服务实例配置注意事项
sta
static
void
Main(
string
[] args)
{
//55 AA 00 61 43 7A 00 00 43 B4 15 0D
DeviceSingletonDriver dev1 =
new
DeviceSingletonDriver();
dev1.DeviceParameter.DeviceName =
"网络设备"
;
dev1.DeviceParameter.DeviceAddr = 0;
dev1.DeviceParameter.DeviceID =
"0"
;
dev1.DeviceDynamic.DeviceID =
"0"
;
dev1.DeviceParameter.DeviceCode =
"0"
;
dev1.DeviceParameter.NET.RemoteIP =
"127.0.0.1"
;
dev1.DeviceParameter.NET.RemotePort = 9600;
dev1.CommunicateType = CommunicateType.NET;
dev1.Initialize(
"0"
);
IServer server =
new
ServerManager().CreateServer(
new
ServerConfig()
{
ServerName =
"单例服务"
,
NetReceiveBufferSize = 1024,
ControlMode = ControlMode.Singleton,
MaxConnects = 4000
});
server.AddDeviceCompleted += server_AddDeviceCompleted;
server.DeleteDeviceCompleted += server_DeleteDeviceCompleted;
server.SocketConnected+=server_SocketConnected;
server.SocketClosed+=server_SocketClosed;
server.Start();
server.AddDevice(dev1);
while
(
"exit"
== Console.ReadLine())
{
server.Stop();
}
}
ControlMode = ControlMode.Singleton设置成单位模式就可以了。
8.5 单例模式运行效果
在本机跑过10000万个并发连接,用的jmeter,jmeter占用了1.4G左右的内存、90%多的CPU,我也不知道为什么这么耗资源,笔记本勉强还能工作。
现在模拟的是15个客户端,100毫秒发送一次数据,效果如下:
- 图片
- 视频
1.[连载]《C#通讯(串口和网络)框架的设计与实现》
2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍
2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)
5.ServerSuperIO开源地址:https://github.com/wxzz/ServerSuperIO
物联网&集成技术(.NET) QQ群:54256083
- 《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
- 《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项
- 《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
- 《连载 - 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
- 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)
- 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。附小文:招.NET开发,结果他转JAVA了,一切都是为了生活
- 《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍
- 《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互
- 《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤。附:3.5 发布与更新说明。
- 《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
- 《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明
- 《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据
- [开源]跨平台物联网通讯框架-ServerSuperIO(SSIO)
- C#跨平台物联网通讯框架ServerSuperIO(SSIO)
- 《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)
- 《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。
- 《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤。附:3.3 发布与版本更新说明。
- [更新]跨平台物联网通讯框架 ServerSuperIO v1.2(SSIO),增加数据分发控制模式
- T-SQL中内部函数-聚合函数
- 《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
- 收藏文章链接
- 用Java编写一个简单日历(不含图形界面)
- 随想录(句柄泄漏)
- 《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
- 在阿里云Ubuntu上安装mysql
- 矩形的个数
- mysql 主键自增
- 见识了才会慢慢的思考更多
- 机器学习笔记七:损失函数与风险函数
- win7与Ubuntu共享文件夹的详细方法
- 扩展spring的BeanUtils,增加拷贝属性排除null值的功能(注:String为null不考虑)
- 又到路口