2009-09-15 13 views
6

Leggi informazioni su Server push here.
Desidero inviare dati al client dalla mia applicazione Web in tempo reale.
Stavo guardando socket TCP come una delle opzioni.
Per HTTP ho trovato una varietà di framework per Java, PHP, Python e altri su here. Tuttavia non so se alcuni di questi supportano Push.Server di implementazione Push

  • Quali opzioni e framework si consiglia di implementare Spinta server per ?
  • Quale lingua sosterresti per implementare lo stesso e perché?
+2

Un framework non "supporta" push..tutto un push è una lunga richiesta con un sleep in esso che invia periodicamente aggiornamenti (push) al client. Penso che se il framework lo supporti o meno non dovrebbe preoccuparti per te. – ryeguy

+0

@ryeguy: l'implementazione dei socket TCP sarebbe più efficiente del polling lungo HTTP. –

+1

Bene, devi ancora fare una richiesta HTTP, partendo dal presupposto che stai usando solo HTML di base (al contrario di Flash dove puoi usare i socket reali). Ma se intendi costruire il tuo server per accettare questo tipo di richieste, sì, è meglio. Facebook ha costruito il proprio server comet in erlang per la chat. – ryeguy

risposta

3

sto usando orbitava in questo momento, è fantastico!

Se si utilizza la chat o il tipo di abbonamento, utilizzare stompservice e orbitare.

Se si esegue la mappatura del client 1 a 1, utilizzare TCPSocket.

Posso darti alcuni esempi di codice se vuoi.

+0

La mia implementazione ha più i client che si collegano al mio server e sarebbero connessi forse per giorni .. TCP Sockets sarebbe meglio qui se sì quale struttura/tecnologia consiglieresti? –

+0

I client devono comunicare tra loro? I socket TCP sono utili se il server invia dati personalizzati al client piuttosto che i client che inviano dati tra di loro o i dati di trasmissione del server a cui i clienti si iscrivono. Per le situazioni di cui sopra utilizzare Orbited/STOMP/MorbidQ. Altrimenti il ​​TCPSocket è bello e basta scrivere manualmente il socket del server. A seconda della complessità di ciò che il tuo server deve fare, ho sentito parlare di persone che usano twistato per fare un po 'di sollevamento pesi sulle prese, ma non l'ho ancora fatto. – DevDevDev

+0

La cosa bella dei socket è che puoi scrivere il server in qualsiasi lingua tu voglia. Personalmente tendo ad usare Orbited + Python + Django che funziona davvero bene per me. – DevDevDev

1

Credo che l'implementazione di xmpp sia quella che viene utilizzata da molte grandi aziende ma la cosa comune è usare anche un server comet.

un sacco di implementazione in python per cui puoi google in giro.

3

Come su Orbited, è molto buono e di essere utilizzato da Echowaves

+0

Dato che Orbited apre socket TCP su un server web, dovrò usare VPS per questo? ... Se utilizzo l'hosting condiviso, probabilmente l'host web potrebbe non permettere che i socket siano mantenuti aperti e in esecuzione ... –

3

Comet è il protocollo che si desidera. L'implementazione migliore di Comet è una chiamata più difficile.

Se sei OK con Java (o, suppongo, Jython), o .NET (dove IronPython è una possibilità), ho il sospetto (non avendo ampiamente provato tutti -!) Che stream hub deve essere un importante contendente. È un tipico prodotto "freemium": puoi ottenere una versione gratuita ("come nella birra gratis" ;-) oppure puoi provare la costosa Web Edition o la versione Enterprise ancora più costosa; il confronto delle caratteristiche è here (ad esempio, edizione gratuita: nessun https, non più di 10 utenti simultanei, nessun .NET).

+0

Comet funziona o HTTP? Qualche Cometa come implementazione su socket TCP? –

+1

Sì, Comet si basa su richieste HTTP a lunga scadenza, che a sua volta, ovviamente, vengono eseguite su socket TCP. Vedi per es. http://en.wikipedia.org/wiki/Comet_(programming) per le basi fondamentali. –

+1

Hai visto un buon confronto tra le implementazioni di Comet serveride? Attualmente sto giocando con http://cometdproject.dojotoolkit.org/ –

0

Hai provato StreamHub Push Server?

+0

Non proprio, Alex Martelli ha menzionato questo nel suo post ... ma la versione gratuita consente solo 10 utenti simultanei ... giusto? –

2

Sono personalmente di parte, ma mi piace WebSync, for IIS/.NET. Si integra con IIS, quindi nessun altro software server è necessario, solo una DLL da aggiungere al progetto.

+0

@Downvoter - motivo? – jvenema

3

Ok, sto usando ASP.NET con la libreria ajax della cometa PokeIn sul mio progetto. Inoltre, ho provato Atmosphere sotto JAVA .. La mia ultima scelta era PokeIn .. Perché solo il supporto push del server non risolve i problemi. Avrete bisogno di una sorta di serializzazione di client su server e di gestione degli oggetti. PokeIn ha coperto tutti questi bisogni per me.

Problemi correlati