1. ¿Por qué se usan páginas web para el monitoreo en tiempo real?
LZ recientemente compró una casa en Wuxi. Aunque trabaja en Shanghai, los precios de la vivienda en Shanghai son demasiado altos e insoportables, por lo que eligió Wuxi, lo cual es aceptable, como un lugar para establecerse. Los amigos que han comprado una casa pueden conocer el proceso de comprar una casa. Un paso muy importante para comprar una casa es que requiere una presentación de viviendas comerciales. En pocas palabras, cuando compre una casa, puede verificar el estado de registro de su casa en el sitio web de presentación de viviendas comerciales del gobierno. Si el desarrollador ya se ha registrado y todavía está vendiendo esta casa, debe ser una venta de una habitación. Y un punto muy importante es que solo preparándonos para el caso podemos proceder al próximo préstamo bancario. A medida que el interés bancario se está volviendo cada vez mayor, cuanto antes sea el registro, mejor será el préstamo, mejor será. Por lo tanto, es particularmente importante conocer el estado de presentación de la compra de su casa lo más rápido posible.
Por supuesto, también puede consultar su estado de presentación en el sitio web todos los días. Obviamente, esta no es la forma en que es un programador, ni es como es un programador .NET. El enfoque del programador es notificar honestamente al programa al teléfono móvil una vez que se completa el registro. Por cierto, me gustaría quejarme de que el sitio web para la presentación es realmente lento.
2. ¿Elige el servicio de Windows Service, Form (WinForm), Web o de consola?
Por supuesto, el más adecuado es definitivamente el servicio de Windows, WinForm y Web definitivamente están bien. El programa de consola no es necesariamente el más adecuado, pero el desarrollo es definitivamente el más rápido. Después de una consideración integral, fue un proyecto de monitoreo muy pequeño y solo tomó uno o dos meses, o uno o dos días, por lo que no fue tan complicado. Además, el servicio Windows también debe instalarse en el servidor. Lo más importante es que la consola es la más rápida de desarrollarse y la más fácil de desplegar, por lo que finalmente elegí el programa de consola.
3. Analizar los requisitos
1. La situación de presentación debe verificarse cada pocos minutos, por lo que se requiere System.timers.timer. Por supuesto, si es un proyecto muy robusto o completo, se recomienda usar cuarzo.net. Por supuesto, puede elegir TopShelf, Hatchfire, FluentsCheduler, etc.
2. Debido a que necesita verificar el estado de registro del sitio web, obtener el HTML de la página web de registro y luego determinar si el HTML contiene la palabra "a la venta". Si no, significa que el registro se ha presentado. System.net.WebClient es necesario. Hay más sitios web de búsqueda en .NET. Los más básicos son httpwebrequest, httpclient o reestharp, que son todas buenas opciones.
3. Debido a que se requieren notificaciones en tiempo real, se seleccionó la notificación SMS de Alibaba Cloud. Debido a que se utilizan otros proyectos, pueden copiar directamente el código para usarlo. Por supuesto, también hay muchas notificaciones, como correos electrónicos, aplicaciones, etc. Por supuesto, no necesitamos ser tan complicados.
4. Módulo de código
El código directo, la lógica y el código son simples.
programa de clase {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 (remitente de objeto, system.timers.elapsedeventargs e) {WebClient Client = new WebClient {coding = system.text.encoding.getEncoding ("utf-8")}; var html = Client.downloadString ("http://www.xxxx.com/xxxx.html"); Console.WriteLine (Datetime.Now.ToString ("yyyy-mm-dd hh: mm: ss") + "..." + "no firmado"); if (html.indexof ("para la venta") == -1) {if (timer! = null) timer.stop (); // Enviar 5 mensajes de texto para (int i = 0; i <5; i ++) {// enviar smsmessage.send ("152 **** 7178", "SMS_92310001", new {name = "emrys", status = "Felicitaciones, felicidades, la casa ha sido firmada!"}); Thread.sleep (5 * 1000); }}}}