所在单位有消息推送的需求,整理了一下,具体要求如下:
- 服务器(ASP.NET)往桌面客户端(WPF)单向推送;
- 客户端消费消息分为一次性消费(如:扫面支付结果推送)、多次消费(如:订单推送)
- ClientId在线状态其他客户端不能再用相同的ClientId连接
一开始使用了SingalR,缺点如下:
- 包太大
- ConnetionId在断线重连后会变化
后来用阿里云的MQTT,太复杂(CLearSession、QOS什么的,整的我云里雾里),另外包也不小,最关键是需要Money。
最终自己动手写了个服务端和客户端。
代码和服务端Demo扔在了gitee,nuget包名称为MPNet6....