1. Warum werden Webseiten für die Echtzeitüberwachung verwendet?
LZ hat kürzlich ein Haus in Wuxi gekauft. Obwohl sie in Shanghai arbeitet, sind die Immobilienpreise in Shanghai zu hoch und unerträglich. Freunde, die ein Haus gekauft haben, können den Kauf eines Hauses kennen. Ein sehr wichtiger Schritt beim Kauf eines Hauses ist, dass es eine Einreichung mit gewerblichen Wohnungen erfordert. Um es einfach auszudrücken, können Sie beim Kauf eines Hauses den Registrierungsstatus Ihres Hauses auf der Website für gewerbliche Wohnungsbaustände überprüfen. Wenn sich der Entwickler bereits registriert hat und dieses Haus noch verkauft, muss es sich um einen Verkauf mit einem Schlafzimmer handeln. Und ein sehr wichtiger Punkt ist, dass wir nur durch die Vorbereitung auf den Fall mit dem nächsten Bankdarlehen fortfahren können. Da die Bankenzinsen immer höher werden, desto besser ist das Darlehen, je früher die Registrierung ist, desto besser ist es. Daher ist es besonders wichtig, den Anmeldestatus Ihres Hauskaufs so schnell wie möglich zu kennen.
Natürlich können Sie jeden Tag Ihren Anmeldestatus auf der Website überprüfen. Offensichtlich ist ein Programmierer nicht so, und es ist auch nicht so, wie ein .NET -Programmierer ist. Der Ansatz des Programmierers besteht darin, das Programm nach Abschluss der Registrierung das Programm ehrlich mit dem Mobiltelefon zu informieren. Übrigens möchte ich mich darüber beschweren, dass die Website für die Einreichung sehr langsam ist.
2. Wählen Sie Windows Service, Formular (Winform), Web oder Konsolenprogramm?
Natürlich ist der am besten geeignete Windows -Service, Winform und Web definitiv in Ordnung. Das Konsolenprogramm ist nicht unbedingt das am besten geeignete, aber die Entwicklung ist definitiv das schnellste. Nach umfassender Überlegung war es ein sehr kleines Überwachungsprojekt und es dauerte nur ein oder zwei Monate oder ein oder zwei Tage, so dass es nicht so kompliziert war. Darüber hinaus muss der Windows -Dienst auf dem Server installiert werden. Das Wichtigste ist, dass die Konsole am schnellsten zu entwickeln und am einfachsten eingesetzt zu werden. Deshalb habe ich mich endlich für das Konsolenprogramm entschieden.
3. analysieren Sie die Anforderungen
1. Die Anmeldessituation muss alle paar Minuten überprüft werden, also ist System.timers.timer erforderlich. Wenn es sich um ein sehr robustes oder vollständiges Projekt handelt, wird natürlich empfohlen, Quartz.net zu verwenden. Natürlich können Sie Topshelf, Hangfire, Fluentscheduler usw. wählen.
2. Da Sie den Registrierungsstatus der Website überprüfen müssen, die HTML der Registrierungswebseite erhalten und dann feststellen, ob das HTML das Wort "zum Verkauf" enthält. Wenn nicht, bedeutet dies, dass die Registrierung eingereicht wurde. System.net.Webclient ist erforderlich. Es gibt mehr Suchwebsites unter .NET. Die grundlegendsten sind httpwebRequest, httpclient oder restsharp, die alles gute Entscheidungen sind.
3. Da Echtzeit-Benachrichtigungen erforderlich sind, wurde die SMS-Benachrichtigung von Alibaba Cloud ausgewählt. Da andere Projekte verwendet werden, können sie den Code direkt kopieren, um ihn zu verwenden. Natürlich gibt es auch viele Benachrichtigungen wie E -Mails, Apps usw. Natürlich müssen wir nicht so kompliziert sein.
4. Codemodul
Direkter Code, Logik und Code sind einfach.
Klassenprogramm {static system.timers.timer Timer = null; static void main (string [] args) {timer = new System.timers.timer (2 * 60 * 1000); Timer.elapsed += Timer_elapsed; ; Timer.Start (); Console.readkey (); } private static void Timer_elapsed (Objektabsender, System.Timers.elapsedEventArgs e) {WebClient client = new webclient {coding = system.text.encoding.getEcoding ("utf-8")}; var html = client.downloadstring ("http://www.xxxx.com/xxxx.html"); Console.writeLine (datetime.now.toString ("yyyy-mm-dd hh: mm: ss") + "..." + "nicht signiert"); if (html.indexof ("für verkauf") == -1) {if (timer! = null) timer.stop (); // 5 Textnachrichten senden für (int i = 0; i <5; i ++) {// Senden smsmessage.send ("152 **** 7178", "sms_92310001", neu {name = "emrys", status = "Glückwunsch, Glückwunsch, das Haus wurde für den Verkauf für den Verkauf signiert!"}); Thread.sleep (5 * 1000); }}}}