Php websocket wss

Iniciado por Jastak, 17 Junio 2017, 05:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Jastak

Ok, hola a todos, tengo un pequeño problema que me lleva ya rato jodiendo la cabeza.
He estado intentando crear un servidor webscoket con php (del lado del servidor) y con javascript (del lado del cliente), todo bien. Pero.. ya se presenta el problema cuando pongo toda la página en https, resultaba que el handshake no lograba hacer el proceso, vi que pasaba si el header tenia algo malo y ví que estaba codificado (con http, no lo estaba, lógico xD, es texto plano), ahora mi pregunta es.. ¿como hago para poder leer eso codificado, o evitar que venga codificado?

engel lex

donde lo viste codificado?

el navegador debe hacerse cargo por completo del cifrado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Jastak

#2
a ver, te explico, yo corro un codigo servidor socket aparte con el comando "php" en la consola, este servidor se encarga de recibir conexiones FancyWebSockets de javascript, y claro.. la conexión cuando la lees te suelta las características (en el caso de HTTP (ws) me suelta esto):

GET /server HTTP/1.1
Host: proyectoz.tk:9000
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://proyectoz.ml
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es-US,es-419;q=0.8,es;q=0.6
Sec-WebSocket-Key: KEY
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

Pero con el SSL (HTTPS, WSS) de por medio me suelta esto:

����y?1��T1�����o֡�[w�������̨̩�+�/�,�0����/5
h
                                                                            uP
�proyectoz.tk#


engel lex

repito, como lees la conexión?

directamente al correr el servidor te muestra en consla esa información sobre la conexión entrante?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Jastak

#4
no sea, del socket..

Código (php) [Seleccionar]
if (in_array($server, $readSocks)) {
                   $newClient = stream_socket_accept($server, 0);
                   if ($newClient) {
                       $headers = fread($newClient, self::HEADER_BYTES_READ); // <-------- Aquí es donde leo la conexion
echo "HEADERS: ".$headers; // <---------------------------------
                        // -------------> Todo esto lo necesito para posteriormente validar la conexión con el handshake
                       $this->setPathParams($headers);
                       $this->clients[] = $newClient;
                       $this->stepRecursion = true;

                       $this->handler->onOpen($this->connImpl->getConnection($newClient));
                       $this->handshake($newClient, $headers);
                   }
                   unset($readSocks[array_search($server, $readSocks)]);
               }



engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Jastak

voy a tratar de probar eso, editaré este post para informar luego de hacer la prueba.

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.