Pregunta

Actualmente estoy escribiendo una aplicación multiplataforma sencillo con Node.js en el servidor y los clientes / iPhone / Blackberry web. Ancho de banda y los requisitos de latencia son similares a algo que puedes ver en un "juego de mesa" IRC o cualquier sistema de chat. He desarrollado el cliente web mediante http sondeo largo (hablando JSON en ambos sentidos).

Para iPhone / Blackberry que podría utilizar el construido en bibliotecas HTTP a hablar con mi aplicación actual o podría escribir un oyente toma en el servidor y charla a él utilizando sockets. ¿Hay alguna ventaja al hacerlo? ¿Por qué los clientes HTTP distintas de los navegadores parecen estar desanimado?

¿Fue útil?

Solución

No se puede hablar con iPhone, ya que no sé lo suficiente sobre los detalles técnicos de la pila de red, pero para BlackBerry peticiones HTTP desde el navegador son tratados de forma diferente a partir de la aplicación iniciada solicitudes en general. BlackBerry como una solución no consiste simplemente en una red TCP-lado del dispositivo / HTTP pila, pero el servicio BlackBerry, que incluye (dependiendo de si estás o no de la empresa) un BlackBerry Enterprise Server con Mobile Data Services (BES / MDS) Alojado en red de su empresa, o una de Research In Motion organizadas servidor BlackBerry Internet (BIS), que todas las conexiones de proxy desde el navegador móvil. Estos servidores pueden hacer muchas cosas, incluyendo el manejo de algunos aspectos de las galletas, la autenticación y la transcodificación de contenido a contenido de marca más consumible por el dispositivo móvil (imágenes y similares). Para un BES / MDS incluso pueden actuar como punto final seguro en una conexión HTTPS.

De todos modos, esto también significa que una gran parte de la funcionalidad que se espera de una normal TCP / HTTP conexión que realmente sucede fuera del dispositivo, por lo que puede ser controlado por un transportista o empresa o RIM. Escueto enchufes son diferentes debido a los diferentes servidores en el medio no pueden hacer tantas suposiciones sobre un socket TCP que puedan sobre una conexión HTTP, por lo que no puede perder el tiempo con sus peticiones HTTP. Una gran cantidad de aplicaciones BlackBerry en realidad terminan escribiendo su propio cliente HTTP en la parte superior de la capa de conexión por esa misma razón, por lo que si usted tiene que hacer algo así como una larga encuesta de HTTP (Comet?) Definitivamente lo escriba en la parte superior de la conexión de socket, no la conexión incorporada HTTP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top