自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 C#结合UniPush通过服务端接口下发推送消息(安卓)

前言最近由于做个手机APP的OA办公系统,最终选择了uni-app。总体感觉还可以。OA的业务就会有很多的待办,为解决这一问题就选择了Unipush。这个功能官方给的文档挺丰富的,但是很多地方还是有坑,按照官网的文档,在线推送基本不会有太大问题。但是有个问题就是,离线推送。社区也有很多人卡在这里,我也是如此。在本文做个简单总结,有缘看到的同学可以少浪费点时间,本文尽量言简意赅。关于官网的以...

2020-01-17 17:10:16 2305

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(八)之改造查找页面实现拉取好友创建群

前言本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayIM的源代码,因为官方并没开源属于收费资源,所以得遵从官方的规则,但包含Demo的数据库脚本和改造之后的find.html,源代码在最后一节。文章目录:LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一...

2019-10-09 11:12:55 846

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(七)之LayIM与MVC数据交互实现单聊和群聊

前言本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayIM的源代码,因为官方并没开源属于收费资源,所以得遵从官方的规则,但包含Demo的数据库脚本和改造之后的find.html,源代码在最后一节。文章目录:LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一...

2019-10-09 11:12:21 1013 1

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(六)之SignalR与MVC结合封装消息发送与接收

前言本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayIM的源代码,因为官方并没开源属于收费资源,所以得遵从官方的规则,但包含Demo的数据库脚本和改造之后的find.html,源代码在最后一节。文章目录:LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一...

2019-10-09 11:11:26 736 2

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(五)之使用RabbitMQ缓存消息

前言本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayIM的源代码,因为官方并没开源属于收费资源,所以得遵从官方的规则,但包含Demo的数据库脚本和改造之后的find.html,源代码在最后一节。文章目录:LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一...

2019-10-09 11:10:35 1450 1

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(四)之ASP.NET SignalR核心功能介绍

前言本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayIM的源代码,因为官方并没开源属于收费资源,所以得遵从官方的规则,但包含Demo的数据库脚本和改造之后的find.html,源代码在最后一节。文章目录:LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一...

2019-10-09 11:09:35 813

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(三)之LayIM初始化数据

前言本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayIM的源代码,因为官方并没开源属于收费资源,所以得遵从官方的规则,但包含Demo的数据库脚本和改造之后的find.html,源代码在最后一节。文章目录:LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一...

2019-10-09 11:08:18 1314

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(二)之后台数据库创建

前言本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayIM的源代码,因为官方并没开源属于收费资源,所以得遵从官方的规则,但包含Demo的数据库脚本和改造之后的find.html,源代码在最后一节。文章目录:LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一...

2019-10-09 11:07:07 1229 1

原创 LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(一)之效果展示与关键技术简介

前言 首先感谢LayIM官网提供的前端框架,其次本文参照了微软官方的《SignalR》,本文的核心功能借鉴大神(奔跑在路上)的系列文章《实时通讯系列目录篇之SignalR详解》,这一系列文章很详细,对SignalR总结也很到位。本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能。源代码不包含LayI...

2019-10-09 11:04:55 970

原创 C#泛型基础(二)之泛型类型约束

泛型虽然在实例化时可以指定为任意类型,但是实际业务中,并不是都需要这样,更多的时候因为业务逻辑而需要添加一些约束。泛型添加约束使用where子句,如List<T> where T:class表示T只能是引用类型。下文将展示泛型约束的基本用法与基本概念。一、约束类型约束类型有六种,分别是class,struct,基类,接口,new(),unmanaged,其中unmanaged在...

2019-05-21 22:36:00 3176

原创 C#泛型基础(一)之泛型介绍与泛型链表

一、泛型的优点泛型是C#中相当重要的一部分,泛型有如下几个突出的有点:1、性能。泛型的主要的一个优点就是性能,在实际项目中经常会遇到装箱和拆箱,尤其是在遍历的时候,频繁的装箱和拆箱会造成很大的性能损失,而泛型在泛型定义的时候就需要指定数据类型,在JIT编译器动态生成的类型中不再需要装箱和拆箱,如定义List<int>2、类型安全。在泛型类中泛型类型T定义了允许使用的类型,如...

2019-05-20 23:15:07 805

原创 C#基于任务的异步编程基础(四)之异步方法异常处理

在前面几篇文章的展示了如何使用Task\async\await关键字实现异步编程,在《C#基于任务的异步编程基础(三)之异步方法并行》也展示了如何正确的处理多个异步方法并行,在实际项目中,逻辑复杂,难免会有意料之中和意料之外的错误,那么本文将用示例代码展示如何正确的处理异步方法的异常。一、构建异常方法1、创建抛出异常的方法,代码如下: private async stat...

2019-05-08 21:58:37 1346

原创 C#基于任务的异步编程基础(三)之异步方法并行

在上篇《基于任务的异步编程基础(二)之async和await创建异步方法》介绍了async和await的基本用法,这节将重点介绍如何并行执行异步和多个异步方法的异常处理。一个异步方法中,可以调用一个或多个异步方法,代码如何实现主要取决于一个异步方法的结果是否依赖另外一个异步方法,本文只展示多个异步方法独立运行的场景,一般情况下一个异步方法不会依赖另一个异步方法,否则还不如同步执行更易阅读。...

2019-05-05 23:29:05 928

原创 C#使用命名管道与其他进程间通讯(二)

在上一篇《C#使用命名管道与其他进程间通讯(一)》中展示了如何在两个C#开发的进程直接进行数据传递,本文将展示如何使用Go开发的进程和C#开发的进程间通讯。一、建立Server端参照《C#使用命名管道与其他进程间通讯(一)》中使用NamedPipeServerStream构造Server端。本文将直接使用上一节中的Server端,不再赘述。二、建立Client端上一节中使用C#构建...

2019-04-24 20:27:48 333

原创 C#使用命名管道与其他进程间通讯(一)

命名管道常常用于应用程序之间的通迅,因为不需要进行序列化和反序列化操作,所以效率是非常高的,C#也提供了NamedPipeServerStream与NamedPipeClientStream两个类库用于进程间命名管道通讯,由此写两篇文章记录一下这两个类库的用法。本文章欲构建一个Server端从队列中取数据发送到客户端,文章的实际意义,一方面可以展示这两个类库的使用,另一方面可以对在实际项目中有一定...

2019-04-21 22:43:30 2077

原创 C#基于任务的异步编程基础(二)之async和await创建异步方法

在上一篇文章《C#基于任务的异步编程基础(一)之Task管理多线程》中介绍了Task关键字的基本用法,这篇文章将主要介绍async关键字。一、async的背后当方法使用async标识之后,和普通方法有了什么区别,在async背后,编译器做了什么?1.当使用async标识之后,编译器会理解为这个方法里面可能会用到await关键字,编译器将会在状态机中编译此方法,当方法执行到await关键...

2019-04-07 21:47:43 978

原创 C#基于任务的异步编程基础(一)之Task管理多线程

在C#4.0以后,可以使用System.Threading.Tasks下的Task类来创建和管理多线程,下面将记录如何简单的使用Task.一、使用Task执行静态方法在控制台编写如下下面: static void Main(string[] args) { string tid = Thread.CurrentThread.Man...

2019-03-17 21:53:39 1818

原创 使用static和readonly关键字构造饿汉式日志单例

一)使用static和readonly关键字构造单例的原由使用这两个关键字的原因主要基于它们有以下几个特征,虽然它们还有其他很多特征,但是理解以下几个特征会更容易理解如何构造单例。1.static关键字的几个重要特征:1)静态成员只被创建一次,静态成员是属于类而不是实例对象2)一个类即使被创建多个实例,它的静态成员都只有一个3)静态方法只能被重载,而不能被重写2.reado...

2019-03-14 23:10:15 648

原创 C#程序集Assembly添加友元程序集

在创建.Net Framework的类库中,假如使用了internal关键字标记了方法,关键字,属性时,那么就只能在当前的程序集中使用。那么需要在单元测试或者其他的程序集中使用呢?如何处理?假如更改成pubic就失去了internal的意义。在.Net Framework的类库中都有一个AssemblyInfo.cs文件,该文件描述了当前程序集的一些信息,可以通过在该文件添加[assembly...

2019-03-06 00:23:07 842

原创 Go获取命令行传递的参数

通常会遇到从命令行启动go编写的应用程序,假如需要从命令行启动应用并且传递参数传递业务呢?答案是使用go系统提供的"Args"API来获取参数,多个参数直接以空格间隔,如args1 args2 args3一,获取简单参数获取简单参数非常简单,代码如下:/*Go获取命令行传递的参数*/package mainimport ( "fmt" "os")func ...

2019-02-20 00:01:15 2903

原创 Go结构体与XML互转操作

Go中提供了XML操作的库,Unmarshal/Marshal可以进行结构体和XML互换,MarshalIndent的第二个和第三个参数可以添加头和缩进符,例如本例中第三个参数加了“ ”,Marshal解析后是一个无格式的字符串。 需要注意的是:假如结构体需要定义xml的属性,可以加上“attr”标记,如下代码所示,格式一定是`xml:"xxx,attr"`,其中“”不能省略,否不报错但结构体...

2019-02-18 22:36:02 4843

C#结合unipush的服务端消息推送demo

使用Winform做的一个使用unipush给安卓app推送消息的demo,介绍了如何集成个推的sdk和业务处理

2020-01-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除