Tengo un cliente/servidor websocket que funciona perfectamente con Firefox y Chrome 18. No funciona con Chrome 19 beta. Sospecho que es debido a que este navegador ahora usa una extensión de marco desinflado que mi servidor no admite.No se puede conectar la websocket a Chrome 19
Chrome 19 beta está enviando esta en su apretón de manos: "Sec-WebSocket-Extensiones: x-webkit-desinflado-marco"
tengo mi servidor de envío de vuelta: "SEC-WebSocket-Extensiones:"
Pero esta no es la manera correcta de rechazar la extensión o hay algo más que no estoy atrapando. Esto es lo único en el apretón de manos que es diferente de lo que veo proveniente de los navegadores de trabajo.
Editar: Aquí hay más información. Estos son los apretones de manos según lo capturado por Wireshark.
El apretón de manos usando Firefox 12:
GET/Chatserver HTTP/1.1
Anfitrión: (omitido para este post)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv : 12,0) Gecko/20100101 Firefox/12.0
Accept: text/html, application/xhtml + xml, application/xml; q = 0,9, /; q = 0,8
Accept-Language: es-es, en; q = 0.5
Aceptar codificación: gzip, d eflate
DNT: 1
conexion: keep-alive, Asciende
Sec-WebSocket-Versión: 13
Origen: (omitido para este post)
Sec-WebSocket-Key: 2TKm4ozUQdNP17Lobt7IBg ==
Pragma: no -cache
Cache-control: no-cache
de actualización: WebSocket
HTTP/1.1 101 Protocolos de conmutación
Upgrade: WebSocket
Connecti en: Actualizar
Sec-WebSocket-Accept: pSUB3BT9YUUd9n3mOeWY/1uVqJE =
El apretón de manos usando Chrome 18:
GET/Chatserver HTTP/1.1
Upgrade: WebSocket
Conexión: Actualizar
Host: (se omite en esta publicación)
Origen: (se omite en esta publicación)
Sec-WebSocket-Key: zuHLEC8pGvAMadarhCLXFA ==
Sec-WebSocket-Version: 13
HTTP/1.1 101 Protocolos de conmutación
Upgrade: WebSocket
conexion: Mejora
Sec-WebSocket-Accept: LMBSq6Bk9Kiv + zAbQlAL899pfzc =
El apretón de manos usando Chrome 19:
GET/Chatserver HTTP/1.1
Actualización: websocket
Conexión: Actualización
Anfitrión: (se omite en esta publicación)
Origen: (omitido para este post)
Sec-WebSocket-Key: TbwnVcuUiqGgZn7hxvxzvQ ==
Sec-WebSocket-Version: 13
SEC-WebSocket-Extensiones: x-webkit-deflate-frame
HTTP/1.1 101 Protocolos de conmutación
Upgrade: WebSocket
Conexión: Actualizar
Sec-WebSocket-Accept: D45BJ + Vfydy1Upcs3Hze/nuiaS8 =
SEC-WebSocket-Extensiones:
Todas las respuestas del servidor tienen \ r \ n terminaciones de línea e incluyen un \ r \ n adicional al final del mensaje.
FF12 y Chrome18 trabajo - Chrome19 no funciona. En Chrome19, el siguiente paquete después de la respuesta de handshake del servidor es FIN/ACK. La conexión está cerrada.
nb. También he intentado usar un guión como el valor Sec-WebSocket-Extensions, pero eso tampoco funcionó.
Hola Aaron, Por favor, ¿me puede indicar dónde y qué cambiar? Tengo exactamente el mismo problema, estoy usando el mismo PHP-Websocket y de repente ha dejado de funcionar en la última versión de Chrome. –
@ClintonGreen: busque la función de envío en Connection.php. Verá en los argumentos que $ enmascarado está predeterminado en verdadero. Ese argumento debe ser falso para que el envío funcione correctamente en Chrome 19+. Lo siento por la respuesta tardía. – Aaron
muchas gracias. Voy a darle una oportunidad. Aclamaciones –