前言 开发一个AspNetCore的中间件需要理解RequestDelegate.另外,还需要理解.NET Core中的依赖注入.还有一个就是内嵌资源的访问.例如:EmbeddedFileProvider 的使用.那么本文就这三点做一个简单的介绍.理解了这些那么基本上开发下去就不难了. RequestDelegate 对于RequestDelegate的介绍,大家可以看一下这篇文章:https://www.cnblogs.com/artech/p/inside-asp-net-core-pipe…
前言 前几天写博客的时候突然看见了历史上的今天.不禁感慨时光如梭,这系列博客后来被我标注了已经过时,但是还有很多小伙伴咨询我.既然过时就要更新,正好 .NET Core 也出来很久了,于是乎想到把LayIM融入到.NET Core中做一项服务来用,就像SwaggerUI那样.只需要调用一句 app.UseLayiM() 即可实现LayIM的对接工作.当然,接口越简单,肯定背后承担了复杂的工作.之前我写过基于OWIN和融云的一个Asp.Net的组件,所以稍微有一点经验,但是对于.NET Core的…
前言 在上一篇中简单讲了一些基础知识,例如Asp.Net Core Middleware 的使用,DI的简单使用以及嵌入式资源的使用方法等.本篇就是结合基础知识来构建一个基础框架出来. 那么框架有什么功能呢? 拦截LayIM请求 简单路由功能 路由调度器 通用接口 下面就基于以上四点搭建基础框架.其他缓存,日志什么的就先不在介绍. 拦截LayIM请求 正如上一篇介绍的那样,实现一个中间件就可以做拦截请求操作,换句话说,如果是layim的请求,我们不要放过.如果不是,那么拜拜.但是由于我们又使用了…
前言 在前几篇中已经初步介绍了开发AspNetCore中间件的一些基础知识,不过都没有很深入的去研究,后续还是需要去看看源码.本篇呢,终于有点开头的味道了,就是要介绍LayIM了,其实标题写的是主角,其实由于我已经多次对接过LayIM的开发,所以这次的主角应该是Asp.Net Core,不过技术没有好坏之分,合起来才能完美.本篇对于LayIM只是做简单介绍,想了解详情的小伙伴可以去官网查看. LayIM简介 我觉得再多的语言也不如一张图来的实在. LayIM常用接口介绍 layim.config…
前言 “一旦开始了就要坚持下去“.为什么本文的第一句话是这么一句话呢,因为我经常就是开头轰轰烈烈,结果越来越枯燥,就不想做下去了.但是版图就放弃又那么不甘心,继续加油吧. 吐槽完毕,进入正题.在上一篇中我们的主角LayIM已经登场了.而且界面已经实现,那么有些小伙伴就有疑惑了,详细流程是什么样的,今天我就介绍一个东西,那就是 /layim/init 接口的实现细节 另外,项目已经升级至 .NET CORE 2.1 ,最新代码在 dev-netcore2.1 分支上 需求 需求是什么?需求是将La…
前言 距离上一篇博客竟然已经10多天了...工作上的事,个人原因,种种吧.不多说废话,本文将会重点介绍layim的入口配置. LayIM配置 其实在开发者文档里面已经描述的很清楚了.除了几个重要的接口配置,剩下的就是其他可选配置项了. 在普通的对接当中,这些配置都是直接写到页面中的,例如官网给出的例子: 由于在 LayIM.AspNetCore 项目中,为了实现前端的最简单对接.所以我将配置项目做到后台中了.为什么这么做呢?我的初衷就是后端可通过读取配置文件或者硬编码的形式更改LayIM配置,这…
前言   前几篇介绍了整个中间件的构成,路由,基本配置等等.基本上没有涉及到通讯部分.不过已经实现了融云的通讯功能,由于是第三方的就不在单独去写.正好.NET Core SignalR已经出来好久了,于是乎赶紧对接上.可以先看一下之前的文章:.Net Core SignalR初体验. Hub设计   Hub我采用了 Hub<T>,然后只定义了一个 Receive方法. namespace LayIM.AspNetCore.IM.SignalR { public interface ILayIM…
为了介绍使用ASP.NET Core构建GraphQL服务器,本文需要介绍一下GraphQL,其实看官网的文档就行. 什么是GraphQL? GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具. 官网地址:https://graphql.org/ 中文网址(感觉不是官方的…
看官们肯定还有大部分不是很熟悉Actor模型. 我这里基于Erlang, Skynet等语言和框架库来实战型解释下Actor模型.  Actor概念 Actor模型和OO类似, 都是符合人的思维模式进行编码. OO里啥都是类, 用类来模拟对象, 解决所有的问题. Actor类似的使用Actor来模拟处理对象和单元 Actor在Erlang中叫进程(非操作系统进程), 在Skynet中叫svc(服务)  Mailbox消息队列 每个Actor中包含有一个mailbox, 也就是邮箱. Actor自…
上一篇文章:https://www.cnblogs.com/cgzl/p/9734083.html 处理数据 嵌套字段 看例子: 我想查看viewer下的repositories.注意里面的edges,一旦看到这个词,通常就表示有连接到某个数组的数据.在这里就是一个集合的repository. edges里面的node代表viewer列表里不同的repository. 查询报错了,因为这里需要多repositories有个翻页的动作,所以需要first或last参数. 添加first参数以后就可…