Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

doc stream helper in Spanish readme

  • Loading branch information...
commit 28db7486ef25588faf5440c0f84112ef9efd0564 1 parent 4f37978
@gnandretta authored
Showing with 50 additions and 0 deletions.
  1. +50 −0 README.es.rdoc
View
50 README.es.rdoc
@@ -842,6 +842,56 @@ De manera similar, también podés asignar el código de estado y encabezados:
También, al igual que +body+, tanto +status+ como +headers+ pueden utilizarse
para obtener sus valores cuando no se les pasa argumentos.
+=== Streaming De Respuestas
+
+A veces vas a querer empezar a enviar la respuesta a pesar de que todavía no
+terminaste de generar su cuerpo. También es posible que, en algunos casos,
+quieras seguir enviando información hasta que el cliente cierre la conexión.
+Cuando esto ocurra, el +stream+ helper te va a ser de gran ayuda:
+
+ get '/' do
+ stream do |out|
+ out << "Esto va a ser legen -\n"
+ sleep 0.5
+ out << " (esperalo) \n"
+ sleep 1
+ out << "- dario!\n"
+ end
+ end
+
+Podés implementar APIs de streaming,
+{Server-Sent Events}[http://dev.w3.org/html5/eventsource/] y puede ser usado
+como base para {WebSockets}[http://es.wikipedia.org/wiki/WebSockets]. También
+puede ser usado para incrementar el throughput si solo una parte del contenido
+depende de un recurso lento.
+
+Hay que tener en cuenta que el comportamiento del streaming, especialmente el
+número de peticiones concurrentes, depende del servidor web utilizado para
+servir la aplicación. Puede que algunos servidores, como es el caso de
+WEBRick, no soporten streaming directamente, así el cuerpo de la respuesta será
+enviado completamente de una vez cuando el bloque pasado a +stream+ finalice su
+ejecución.
+
+Cuando se pasa +false+ como parámetro, no se va a enviar el mensaje +close+ al
+objeto de stream. Queda en vos cerrarlo en el punto de ejecución que quieras.
+Nuevamente, hay que tener en cuenta que este comportamiento es posible solo en
+servidores que soporten eventos, como Thin o Rainbows. El resto de los
+servidores van a cerrar el stream de todos modos.
+
+ set :server, :thin
+ conexiones = []
+
+ get '/' do
+ # mantenemos abierto el stream
+ stream(false) { |salida| conexiones << salida }
+ end
+
+ post '/' do
+ # escribimos a todos los streams abiertos
+ conexiones.each { |salida| salida << params[:mensaje] << "\n" }
+ "mensaje enviado"
+ end
+
=== Log (Registro)
En el ámbito de la petición, el helper +logger+ (registrador) expone
Please sign in to comment.
Something went wrong with that request. Please try again.