所在單位有消息推送的需求,整理了一下,具體要求如下: 伺服器(ASP.NET)往桌面客戶端(WPF)單向推送; 客戶端消費消息分為一次性消費(如:掃面支付結果推送)、多次消費(如:訂單推送) ClientId線上狀態其他客戶端不能再用相同的ClientId連接 一開始使用了SingalR,缺點如下: ...
所在單位有消息推送的需求,整理了一下,具體要求如下:
- 伺服器(ASP.NET)往桌面客戶端(WPF)單向推送;
- 客戶端消費消息分為一次性消費(如:掃面支付結果推送)、多次消費(如:訂單推送)
- ClientId線上狀態其他客戶端不能再用相同的ClientId連接
一開始使用了SingalR,缺點如下:
- 包太大
- ConnetionId在斷線重連後會變化
後來用阿裡雲的MQTT,太複雜(CLearSession、QOS什麼的,整的我雲里霧裡),另外包也不小,最關鍵是需要Money。
最終自己動手寫了個服務端和客戶端。
代碼和服務端Demo扔在了gitee,nuget包名稱為MPNet6....