2010-07-11 19 views
10

estoy en busca de recursos sobre la interacción entre el encaje lado del cliente web, servidor web y back-end aplicación real que trabaja detrás de protocolos CGI, FastCGI o SCGI.WebSocket y CGI/FastCGI/SCGI protocolos

Parece que esto es imposible en este punto como:

Solicitud longitud se define específicamente en CONTENT_LENGTH variable, de modo que no puedo esperar que los datos seguirían provenir de servidor web de la entrada estándar, o puedo ? como unset CONTENT_LEGTH define cuerpo sin solicitud.

La solicitud requiere leer CONTENT_LEGTH bytes de fecha no más y si se leen menos, entonces se considera como cliente desconectado.

  • ¿Hay algún recurso sobre cómo (F | C) CGI se actualiza o se puede utilizar con WebSockets?
  • ¿Hay corrientes de aire de SCGI/motas FCGI/CGI para el apoyo WebSockets?
  • ¿Hay algún servidor web conocido que admita WebSockets?
  • En caso afirmativo, ¿admiten los * protocolos CGI para ellos?
  • ¿Ha tenido alguna experiencia trabajando con WebSockets y * CGI?

Gracias, toda la información sería apropiado.

Artyom

Cualquier persona?

+0

sílaba servidor Web Cheyenne Obtiene datos WebSocket Marco ... ver http://www.osnews.com/story/22681/Syllable_Web_Server_Cheyenne_Gets_WebSocket_Framework –

+1

u obtener WebSocket –

Respuesta

3

Puede encontrar un módulo mod_websocket para lighttpd here. Cuando construya el módulo, asegúrese de especificar la versión correcta del protocolo websocket que desea usar (versión -75 o -76). Comenzando con WebKit Nightly Build r59903 y Chrome 6.0.414.0 (r47952), solo se admite la versión de protocolo -76.

Tenga en cuenta que con el uso de WebSockets, ya no es necesario CGI, FastCGI o protocolos SCGI para conectar el servidor web con el extremo de aplicación posterior. Simplemente implemente un oyente TCP en su aplicación (para mod_websocket para conectarse) y use el socket para E/S asíncrona.

+0

interesante, pero por lo que puedo ver que no pasa ninguna encabezados HTTP como cookies, etc. para back-end. Entonces, ¿cómo debo administrar las sesiones? Necesito enviar esos datos explícitamente en lugar de obtenerlos del servidor web. – Artyom

+0

Sus conexiones websocket se crean en el contexto de su sesión HTTP, no tiene que preocuparse por eso. Además de eso, HTTP y websocket son, por supuesto, protocolos completamente diferentes, por lo que en tu conexión websocket no tienes acceso a los encabezados HTTP. Tenga en cuenta que el protocolo WebSocket sólo proporciona un encuadre mínimo en la parte superior de TCP, por lo que cualquier intercambio de datos específica de la aplicación entre el servidor de aplicaciones y el cliente web en la cima de una conexión WebSocket tiene que definir y ejecutar por sí mismo, simplemente como lo harías usando enchufes regulares. – raffel

+4

Sólo para que conste, que yo sepa encabezados HTTP están obligados lado a otro varias razones: Conocer los datos de sesión, sabe que se accede al URL, conoce la IP del host remoto, etc, etc, etc Por lo tanto WebSocket está lejos de ser sólo un enchufe. – Artyom