Domanda

o qualsiasi altro tipo di feed di dati in tempo reale dal server al client ... sto parlando di un gruppo di dati in tempo reale dal server al client. cioè, un aggiornamento informativo ogni secondo.

Il server spingere magicamente i dati al client, o se la necessità del cliente al continuo interrogare il server per gli aggiornamenti? E in quali protocollo non questo di solito funziona? (Http, comunicazione socket, ecc?)

È stato utile?

Soluzione

In applicazioni finanziarie lato server utilizzate dai broker / banche, ecc dati di mercato (le citazioni, i commerci, ecc) vengono trasmessi su TCP tramite un protocollo a livello di applicazione che molto probabilmente non essere HTTP. Naturalmente, non c'è polling. Cliente sta stabilendo una connessione TCP con il server, il server spinge i dati del cliente. Uno degli approcci comuni per distribuire i dati di mercato è FIX . Thomson-Reuters ha mucchio di protocolli proprietari criptici risalenti giorni mainframe per distribuire tali dati.

HTTP può essere utilizzato per SOAP / RESTful per trasmettere / dati della richiesta di non-così-grande volume e di notizie di business.

Aggiorna In realtà, anche FIX non è sufficiente, in alcuni casi, come ha grande testa a causa della sua natura "testo". La maggior parte dei broker e gli scambi trasmettono flussi ad alto volume, come ad esempio le citazioni, utilizzando protocolli binario formato (FAST o qualche proprietario).

Altri suggerimenti

In un caso semplice:

  1. Creare un server con un socket in ascolto.
  2. Sul client, connettersi al socket del server.
  3. Avere il client di fare un while(data = recv(socket)) (pseudocodice)
  4. Quando il server ha qualcosa di eccitante da dire al cliente, semplicemente send(...)s sul socket.

È anche possibile implementare questo modello su HTTP (non esiste un vero limite di tempo superiore a un HTTP presa). La necessità di server nemmeno leggere dalla presa - si può provare a scrivere al firehose unica.

Di solito un socket TCP è impiegato - i messaggi arrivano in ordine, e sono best-effort. Se la latenza è più importante e cade o fuori ordine non è un problema, UDP può essere utilizzato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top