随笔分类 - net
摘要:VisualState基本使用 首先搭建一个自定义控件,继承自ContentControl,自动生成了这些文件 由于CustomButton在Custom命名空间中,所以改一下xaml中的引用 xmlns:local="clr-namespace:WpfApp1.Custom" 定义部件和视觉状态
阅读全文
摘要:在上一篇通信协议碰到了多线程,阻塞、非阻塞、锁、信号量...,会碰到很多问题。因此我感觉很有必要研究多线程与异步编程。 首先以一个例子开始 我说明一下这个例子。 这是一个演示异步编程的例子。 输入job [name],在一个同步的Main方法中,以一发即忘的方式调用异步方法StartJob()。 输
阅读全文
摘要:
WebSocket传递ModbusTCP数据包 错误纠正 上一篇还有个错误,就是客户端写数据时服务端不需要响应,但我的服务端响应了的。我选择改客户端,把写数据时接收到的响应丢弃。 PrintBytes(ADUMessage.Serialze(request), "请求"); if (Client !
阅读全文
WebSocket传递ModbusTCP数据包 错误纠正 上一篇还有个错误,就是客户端写数据时服务端不需要响应,但我的服务端响应了的。我选择改客户端,把写数据时接收到的响应丢弃。 PrintBytes(ADUMessage.Serialze(request), "请求"); if (Client !
阅读全文
摘要:
上一篇已经实现了ModbusTcp服务器和8个主要的功能码,只是还没有实现错误处理功能。 但是在测试客户端时却发现了上一篇的一个错误,那就是写数据成功,服务器不需要响应。 接下来要做的就是实现ModbusTcp客户端。有了清晰的协议,代码循规蹈矩的写就行了。 效果 原始数据 其中只读寄存器和线圈都有
阅读全文
上一篇已经实现了ModbusTcp服务器和8个主要的功能码,只是还没有实现错误处理功能。 但是在测试客户端时却发现了上一篇的一个错误,那就是写数据成功,服务器不需要响应。 接下来要做的就是实现ModbusTcp客户端。有了清晰的协议,代码循规蹈矩的写就行了。 效果 原始数据 其中只读寄存器和线圈都有
阅读全文
摘要:
ModbusTcp协议是基于tcp的,但不是说一定要通过tcp协议才能传输,只要能传输二进制的地方都可以。比如WebSocket协议。 但由于目前我只有tcp上面的modbus服务器实现,所以我必须先用tcp连接借助已有工具来验证我的服务器是否写正确。 效果 ModBusTCP协议报文 ModBus
阅读全文
ModbusTcp协议是基于tcp的,但不是说一定要通过tcp协议才能传输,只要能传输二进制的地方都可以。比如WebSocket协议。 但由于目前我只有tcp上面的modbus服务器实现,所以我必须先用tcp连接借助已有工具来验证我的服务器是否写正确。 效果 ModBusTCP协议报文 ModBus
阅读全文
摘要:
我比较好奇的是webapi服务器怎么处理http请求和websocket请求。有了上一篇番外的研究,这里就可以试着自己写个非常简易的webapi服务器来接收这两种请求。 效果 http请求 消息打印 响应解析 websocket请求 消息打印 使用聊天室测试 其实两种请求差不多,就只是一些头部字段有
阅读全文
我比较好奇的是webapi服务器怎么处理http请求和websocket请求。有了上一篇番外的研究,这里就可以试着自己写个非常简易的webapi服务器来接收这两种请求。 效果 http请求 消息打印 响应解析 websocket请求 消息打印 使用聊天室测试 其实两种请求差不多,就只是一些头部字段有
阅读全文
摘要:
上一篇我已经实现了聊天室,并且在协议中实现了4种类型的消息传输。其实还可以添加video,audio,live等等类型。 不过假如把目前的协议看作RCP1.0版的话,这个版本就只支持有限的4种消息。精力有限啊。也许RCP2.0就可以把video,audio类型加进去? 这不是这篇番外考虑的。而是我在
阅读全文
上一篇我已经实现了聊天室,并且在协议中实现了4种类型的消息传输。其实还可以添加video,audio,live等等类型。 不过假如把目前的协议看作RCP1.0版的话,这个版本就只支持有限的4种消息。精力有限啊。也许RCP2.0就可以把video,audio类型加进去? 这不是这篇番外考虑的。而是我在
阅读全文
摘要:
上一篇实现了多聊天室。这一片要继续改进的是实现收发文件,以及图片显示。 效果 问题 websocket本身就是二进制传输。文件刚好也是二进制存储的。 文件本身的传输问题不太,但是需要传输文件元数据,比如文件名和扩展名之类的。这很必要,如果我们想知道怎么展示这个文件的话。比如这个文件是图片还是word
阅读全文
上一篇实现了多聊天室。这一片要继续改进的是实现收发文件,以及图片显示。 效果 问题 websocket本身就是二进制传输。文件刚好也是二进制存储的。 文件本身的传输问题不太,但是需要传输文件元数据,比如文件名和扩展名之类的。这很必要,如果我们想知道怎么展示这个文件的话。比如这个文件是图片还是word
阅读全文
摘要:上一篇处理了超长消息的问题。我们的应用到目前为止还是单聊天室,这一篇就要处理的多聊天室的问题。 思路 第一个问题,怎么访问不同聊天室 这个可以采用路由参数来解决。我把路由设计成这样/chat/{room}。访问不同路径就代表进入不同聊天室。 第二个问题,怎么创建不同的聊天室 原来的聊天室是单例注入到
阅读全文
摘要:上一篇 - 基于webapi的websocket聊天室(一) 消息超传缓冲区的问题 在上一篇中我们定义了一个聊天室WebSocketChatRoom。但是每个游客只分配了400个字节的发言缓冲区,大概100字。 如果需要发送更多内容呢?难道直接增大缓冲区? 这是一个办法。但还有其他办法。 多次接受消
阅读全文
摘要:上一次我已经讲了在webapi主机上面加入websocket中间件。 这次就更进一步,搭建一个websocket局域网聊天室。 传送门-->webapi添加添加websocket中间件 下一篇 - 基于webapi的websocket聊天室(二) 聊天室 websocket通信其实和win32api
阅读全文
摘要:添加位置 我按照MSDN的例子添加了一个复述客户端响应的中间件。需要注意的时,中间件采用那种方式添加,添加在哪。 哪种方式 我选择创建一条管道分支,只要时ws的连接请求,就转到这个分支 因此,我们需要使用的是MapWhen()来创建管道分支。 添加在哪 要注意授权的问题,所以应该添加到授权中间件之后
阅读全文
摘要:最小webapi 最小webapi默认的中间件配置是这样的 app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run(); 最小webapi没有使用app.UseRouting()和app.Use
阅读全文
摘要:我们平常开发一般只使用GET、POST方法。而对于HTTP给出的PUT、DELETE等其他方法都没使用。以RESTful风格设计接口就能全部用上这些方法。 按照RESTful理查德森成熟度模型改造接口 这个模型跟数据库范式等级相似,都是一层一层满足。我们的mvc接口不好说是哪一级,一般都是每个操作一
阅读全文
摘要:首先需要引入soapcore包 这个包提供了所需的类和soap终结点中间件。 引入这个这个包之后,我们需要定义提供的服务。 这里我写了一个用于查询省份面积的服务。 省份信息服务 /// <summary> /// 省份信息服务接口 /// </summary> [ServiceContract] p
阅读全文
摘要:app.UseAuthentication(); 这个中间件添加后,他会为HttpContext.User设置一个ClaimsPrincipal对象。里面有身份认证token里面携带的信息。 其访问方式如下 HttpContext.User.FindFirstValue("自定义字段") 我们可以创
阅读全文
摘要:HTTP身份认证框架 RFC 7235 定义了一个 HTTP 身份验证框架,服务器可以用来质询(challenge)客户端的请求,客户端则可以提供身份验证凭据。 服务端开启了身份认证后。如果客户端访问未授权的接口,服务器端会向客户端返回 401(Unauthorized,未被授权的)响应状态码,并在
阅读全文
摘要:很多时候我们都会使用后台定时任务,但有些任务不需要定时执行,只需要请求到来时执行一次,比如请求服务器到某个地方同步数据,但请求不需要等数据同步完成再响应。这时候就可以使用排队的后台任务。 基本原理是用一个队列保存任务委托,然后用一个后台定时任务依次执行队列中的委托。 MSDN上把源代码都写好了 1
阅读全文
摘要:按照上一节所讲,我已经对布局系统又所了解。接下来我就实现一个布局控件FixedColumnGrid。 1.基础版 布局控件机制如下,FixedColumnGrid将子控件按照水平排列,每行满两列后换行。每个控件大小相同,高度固定为50。 第一步,先重载测量和排列方法 protected overri
阅读全文
摘要:问题不在于我们做错了什么,之前还好好的,我们什么都没做,就报错了。这完全不是我们的问题。 InitializeComponent其实就是读取xaml文件,然后利用反射来生成和执行一些东西 如果这里报错,说明反射过程中出错了,比如代码里面添加某个东西,xaml中去使用 但是设计器的实时运行出了点堵塞,
阅读全文

浙公网安备 33010602011771号