Bonjour à tous,

J'ai un petit soucis avec socket.io et le portocole http crypté.

Je m'entraîne sur nodeJS, j'ai suivi les explications de Grafkiart.

Tout fonctionne bien sur mon serveur (port 80 http). Cependant, lorsque je me connecte sur mon serveur (port 443 https), impossible de charger https://domaine.com/socket.io/socket.io.js, connexion closed.
Par contre, http://domaine.com/socket.io/socket.io.js est évidemment bien disponible.

Comme les navigateurs bloquent les ressources chargé en http sous les serveurs utilisant https, je dois forcément crypté le transport qui récupère socket.io

Du coup, mon application fonctionne, pour l'instant, uniquement en http.

Est-ce que vous avez une idée pour accéder à socket.io.js en https ?
D'ailleurs, je suis un perdu, socket.io.Js est distribué par le serveur http nodejs ou mon serveur http classique ?
(Je penche pour le serveur http node, vu que l'adresse ne correspond à aucun fichier/dossier)

Si vous pouvez éclairer ma lanterne, ça me ferait gagner du temps de compréhension sur nodeJs (qui soit dit en passant, est génial)

Je vous remercie,

6 réponses


Tango-charly
Auteur
Réponse acceptée

Non comme ceci //domaine/socket.io/socket.io.js (je viens de réaliser que je vous ai même pas indiqué l'erreur que j'avais --')

Mais merci pour la réponse, le sujet est résolu, pour ceux qui auraient ce soucis :
En fait il faut bien créer une instance de serveur nodeJs https (et non http) en passant en paramètre le certificat et la clé du domaine.
https://docs.nodejitsu.com/articles/HTTP/servers/how-to-create-a-HTTPS-server
(bien évidemment le certificat doit être délivré par une autorité, il faut pas le générer soit même pour un domaine public)

Du coup, tout fonctionne très bien en https, par contre ça nécessite de vérifier la requiête pour instancier soit un serveur http soit un serveur https si on veut supporter le protocole http crypté et non crypté.
Perso je vous conseille de rediriger les requêtes faites sur le port 80 (http) sur le 443 tant pis pour les appareils obselètes, ils sont très rares.

En tout cas, merci, pour l'aide !

Tango-charly
Auteur
Réponse acceptée

lol, d'accord, effectivement, mais j'ai utilisé la dernière version de socket.io.
Le tutoriel de Grafikart est encore à jour .
Le soucis venait de mon serveur node, il a fallu que je fasse un serveur https (require https).

Bonjour Tango-charly
comment charges tu socket.io.js ?
comme ceci ?

<script src="/socket.io/socket.io.js" type="text/javascript"></script>

Attention car le tuto de grafikart n'est plus à jour, pour socket.io

Ah oui ? Qu'est ce qui n'est plus à jour ?

La version de socket io actuelle est la version 1.0, alors que grafikart a fait sont tuto sur une version 0.* je ne sais pas combien.
Et oui si tu regarde très bien la version utilisé par grafikart n'est pas a jour