J'essaie d'écrire un serveur pour une connexion WebSocket. J'ai lu la spécification (76, pas 75) soigneusement. J'utilise le champ Miner comme navigateur.
Lorsque j'essaie de créer une bande Web à partir de JavaScript dans le navigateur: p> Le navigateur répond avec P> Mon serveur reçoit une demande de main de main de client valide, elle envoie la réponse, puis la flèche. p> J'ai exécuté tous les exemples d'exemple de la poignée de main, je peux trouver via mon serveur et je correspond aux réponses données exactement dans chaque instance. Je suis assez confiant que le flux d'octets de retour est correct. Je n'ai pas besoin d'aide pour déboguer mon code, ça fait ce que je veux dire de faire. J'ai besoin d'aide pour déboguer mon utilisation du protocole de la poignée de main de la poignée de main depuis laquelle je pense que je pense que je pense être une réponse correcte, elle se moque de moi. P> Ma question est la suivante: Comment puis-je déboguer cette chose? Je peux penser à deux possibilités. p> Y a-t-il un moyen d'obtenir le champ de monfield pour me dire pourquoi il rejeter ma poignée de main? p> li>
existe-t-il un service de serveur Web de travail, public et Web sur le Web? S'il y a, je peux le proxy, regarder les ruisseaux d'octets dans les deux sens et comprendre où le mien est différent. P> li>
ol> Est-ce que quelqu'un a des idées dans ces directions ou d'autres idées? p> Merci pour toute aide. P> P>
3 Réponses :
Voici un jsfiddle que j'ai fabriqué à partir de http://www.websocket.org /a> serveur Websocket echo qui fonctionne dans Chrome mais pas dans Firefox 6: http://jsfiddle.net/awdlc/ p>
Il est ajusté pour utiliser Mozwebsocket plutôt que sur des sites Web, mais peut-être que cela ne suffit pas? P>
À propos de la 2e possibilité. Oui, il existe un serveur WebSocket là-bas. Le serveur de démonstration de jwebsocket à http://jwebsocket.org/demos/chat/chat.htm p>
J'espère que cela aide p>
Ajouté: Server de socket Echo à l'adresse: http://www.websocket.org/echo.html a> p>
Je suis en train de déboguer une situation similaire, et l'outil que je comple sur la plupart est de Netcat, avec une utilisation supplémentaire de OpenSSL. Arrêtez votre serveur Websocket et exécutez De là, assurez-vous que les réponses sont entièrement conformes au protocole de la poignée de main WebSocket. Par exemple, mon problème est maintenant que mes réponses ont NC -L 8766 CODE>. Cela vous permet d'enregistrer exactement quels sont les en-têtes envoyés. Tournez le serveur Websocket Retour et utilisez
NC 8766 CODE> pour coller dans ces mêmes en-têtes et voir le résultat.
openssl s_client -connect localhost: 443 code> vous permettra de faire la demande avec SSL, si cela se trouve dans votre mix. P>
Connection: Fermer code>, ce qui n'est pas bon. P>
Le Backend Ruby Websocket de Gimite semble maintenant soutenir le 76 brouillon. Vous pourriez donner cela un essai?
Je reçois aussi
Firefox ne peut pas établir de connexion au serveur à ... code> avec "ws: //" et
une chaîne non valide ou illégale a été spécifiée "Code:" 12 code > avec "http: //". Chrome donne une meilleure erreur pour cela (en supposant que c'est le même problème)
mauvais schéma d'URL pour Websocket code> pour "http: //", mais alors un indissique:
Code de réponse inattendu: 200 code> pour "WS: //". Le serveur génère et envoie des résultats.
J'ai réalisé que le code de réponse inattendu
: 200 code> était en réalité correct pour Google Chrome, qu'il devrait être 101. Et les en-têtes que j'étais manquaient ... ( tbray.org/defs/wsock-00#anchor18 )