我有一個ASP.NET MVC應用程序爲我們的網頁提供服務,我們也爲第三方添加了一些服務路由,因爲目前我們只有這個MVC應用程序包裝在我們的數據庫上。 現在我需要實現MQTT消息訂閱者,該訂閱者應該在啓動時將客戶端啓動到MQTT代理。ASP.NET MVC應用程序中的微型窗口服務
我在看實現一個類,它將實現MQTT代理的連接啓動,並且我可以從MVC應用程序的Application_start調用此方法。
原因:爲什麼我想這樣做既有微服務和MVC項目,因爲這是一個非常小的項目,我們正處於上線階段,並且不想擴展當前系統。實現微服務將也需要我實現/創建微服務的REST路由從代理接收事件,我想我可以處理,如果更好地直接在數據庫存儲庫的MVC應用程序內實現。
我想知道我的MVC應用程序可以通過遵循這種方法成爲受害者的循環/問題。
到目前爲止,我的代碼看起來像這樣
的global.asax.cs文件
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
MQTTSubscriber.StartMQTTSubscriber();
}
MQTTSubscriber.StartMQTTSubscriber()是我要去的地方來處理連接到MQTT經紀人。我真的需要Windows服務來建立與代理的連接,我的意思是MVC 5 application_start將在每次MVC應用程序域啓動時觸發,無論是通過IIS還是Visual Studio,並且我都可以寫入連接建立邏輯裏面MQTTSubscriber.StartMQTTSubscriber(),如以下
// create client instance
MqttClient client = new MqttClient(IPAddress.Parse(MQTT_BROKER_ADDRESS));
// register to message received
client.MqttMsgPublishReceived += client_MqttMsgPublishReceived;
string clientId = Guid.NewGuid().ToString();
client.Connect(clientId);
// subscribe to the topic "/home/temperature" with QoS 2
client.Subscribe(new string[] { "/home/temperature" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });
2)如果是這樣做,能方式,請告知我的事情我需要處理/照顧這個變通。
任何幫助/建議將理解 感謝
或者我可以在與Windows服務共享的業務/存儲庫層的相同解決方案中實現Windows項目將所有的事件監聽器邏輯處理到數據層。 – user3775217