所在单位有消息推送的需求,整理了一下,具体要求如下:

  1. 服务器(ASP.NET)往桌面客户端(WPF)单向推送;
  2. 客户端消费消息分为一次性消费(如:扫面支付结果推送)、多次消费(如:订单推送)
  3. ClientId在线状态其他客户端不能再用相同的ClientId连接

一开始使用了SingalR,缺点如下:

  1. 包太大
  2. ConnetionId在断线重连后会变化

后来用阿里云的MQTT,太复杂(CLearSession、QOS什么的,整的我云里雾里),另外包也不小,最关键是需要Money。

最终自己动手写了个服务端和客户端。

代码和服务端Demo扔在了gitee,nuget包名称为MPNet6....