Trigger codice C # dalla rete usando PHP

3

Sto lavorando a un progetto in cui devo attivare la mia app Windows Desktop per recuperare il database per le nuove righe dopo che un utente sulla rete interna ha inviato nuove richieste.

Sono riuscito a modificarlo in diversi modi:

  1. Un timer sull'app desktop C # con intervallo di mezzo secondo.
  2. La webapp PHP crea un file XML con le richieste sul sistema operativo in cui è ospitata l'app C #, quindi la classe File System Watcher fa il lavoro.
  3. SOAP servizio web PHP e consumalo in C #.

C'è un modo diretto e pulito per farlo? perché non mi piacciono gli hack che ho fatto perché sono pieni di bug.

    
posta Caddy DZ 09.10.2016 - 17:15
fonte

2 risposte

1

Per le comunicazioni tra processi come questo, vorrei esaminare i socket TCP / IP.

Èunmodosempliceedirettoperfornirecomunicazionetraunprogrammael'altro.L'articolodiCodeProjectquisottotiaiuteràainiziare.

Ulterioriletture
TCP / IP Applicazione chat utilizzando C #
PHP: Sockets

    
risposta data 09.10.2016 - 18:23
fonte
0

Come @DavidPacker menzionato in uno dei suoi commenti, un server AMPQ (come RabbitMQ) è la soluzione migliore. È un'architettura di pubblicazione / sottoscrizione.

  1. La tua applicazione PHP pubblicherebbe un messaggio su una certa coda.

  2. L'applicazione C # sarebbe in ascolto su quella coda.

  3. Dopo aver ricevuto questo messaggio, l'applicazione C # interrogava il database.

Ogni istanza dell'applicazione desktop C # sarebbe connessa al server AMPQ come sottoscrittore. Queste sarebbero connessioni persistenti simili a ciò che la risposta di RobertHarvey @ allude al suo suggerimento di utilizzare socket. AMPQ utilizza socket, ma è una soluzione più mirata e specifica al tuo problema.

Ho già utilizzato questo modello in un'architettura orientata ai servizi con applicazioni scritte in Java, C # e Ruby.

Questo disaccoppia l'editore e l'abbonato, in più è un sistema di messaggistica indipendente dalla tecnologia che ti fornisce quel ponte tra gli stack tecnologici.

    
risposta data 12.10.2016 - 20:32
fonte

Leggi altre domande sui tag