Domanda

Attualmente sto scrivendo una semplice applicazione multipiattaforma con Node.js sul server e client web / iPhone / Blackberry. Larghezza di banda e requisiti di latenza sono simili a qualcosa che si vedrebbe in un IRC "gioco delle parti" o qualsiasi sistema di chat. Ho sviluppato il client Web utilizzando http polling lungo (si parla JSON in entrambe le direzioni).

Per iPhone / Blackberry ho potuto utilizzare il costruito nel HTTP librerie parlare con il mio attuale implementazione o potrei scrivere un ascoltatore socket sul server e parlare ad esso utilizzando i socket. C'è qualche vantaggio a farlo? Perché i client HTTP non-browser sembrano essere scoraggiato?

È stato utile?

Soluzione

Non è possibile parlare di iPhone come io non conosco abbastanza circa i dettagli tecnici dello stack di rete, ma per BlackBerry richieste HTTP dal browser vengono trattati in modo diverso dalle richieste app avviate in generale. BlackBerry come una soluzione non consiste solo di una rete TCP dispositivo di lato / HTTP dello stack, ma il servizio BlackBerry, che comprende (a seconda se si sta impresa o meno) un BlackBerry Enterprise Server con Mobile Data Services (BES / MDS) ospitato su la rete aziendale, o un Research In motion ha ospitato server di BlackBerry Internet (BIS), che delega tutti i collegamenti dal browser mobile. Questi server possono fare un sacco di cose, tra cui la gestione di alcuni aspetti dei cookie, l'autenticazione e la transcodifica dei contenuti al contenuto rendere più consumabile dal dispositivo mobile (immagini e simili). Per un BES / MDS possono anche agire come l'endpoint sicuro in una connessione HTTPS.

In ogni caso, questo significa anche che un sacco di funzionalità che ci si aspetta da un normale TCP / HTTP connessione avviene in realtà spegnere il dispositivo, e quindi può essere controllato da un vettore o dell'impresa o RIM. Scarno prese sono diversi perché i vari server in mezzo non possono fare come molte ipotesi su un socket TCP come possono su una connessione HTTP, in modo che non si scherza con le vostre richieste HTTP. Un sacco di BlackBerry apps in realtà finiscono per scrivere il proprio client HTTP sulla parte superiore del socket layer per questo motivo, quindi, se si deve fare qualcosa di simile a un lungo sondaggio HTTP (Comet?) Sicuramente scriverlo in cima alla connessione socket, non la connessione integrato HTTP.

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