À l'aide d'un Flash socket avec Node.js
J'ai été en utilisant gimite /web-socket-js à mettre en œuvre un WebSocket passé simplement Chrome et le développement des versions de Safari. Je veux m'éloigner de l'Ruby server et sur Node.js. Tout à coup, il ne fonctionne pas dans quoi que ce soit mais de Chrome.
Je soupçonne que cela a à voir avec la Flash Socket Politique fichier que j'ai besoin de mettre en œuvre. Je tiens à mettre en œuvre la présente externe Node.js processus afin de ne pas boueux avec l'application d'origine. Je suis l'aide de la nœud-websocket-serveur pour la mise en œuvre de protocole WebSocket avec Node.js et encore, je préfère pas mess.
Cela semblait être la chose la plus simple à faire serait d'exécuter flashsocket.js, mais qui me donne l'erreur suivante:
sys:334
ctor.prototype = Object.create(superCtor.prototype, {
^
TypeError: Object prototype may only be an Object or null
at Function.create (native)
at Object.inherits (sys:334:29)
at Object.<anonymous> (/Users/me/Projects/testing/websocket/node-websocket-server/flashsocket.js:10:16)
at Module._compile (node.js:472:23)
at Module._loadScriptSync (node.js:479:10)
at Module.loadSync (node.js:349:12)
at Object.runMain (node.js:532:24)
at node.js:762:10
Ici, nous entrons dans la belle cryptique erreurs Node.js est appréciée pour.
Ma question est est-il un stand alone global flash socket serveur de stratégie je peux courir de Node.js ou une autre application? Ma compréhension est que je n'ai besoin de l'avoir à résider sur le port 843. Ou est-il une autre bibliothèque pour WebSocket Node.js qui va gérer le Flash de la Politique comme le Rubis serveur?
OriginalL'auteur Josh K | 2010-09-03
Vous devez vous connecter pour publier un commentaire.
Flash demandes de stratégie peut également être répondu de manière intégrée sur le même port que les WebSockets service que vous fournissez. Voir ce changement à la Prise.IO node.js le module. Il ajoute une connexion écouter le serveur qui répond à la politique de serveur de requêtes sur le même port. De cette façon, vous n'avez pas à faire quelque chose sur le port 843 (qui généralement nécessite les privilèges de root).
Alternativement, vous pouvez également exécuter un exemple très simple (ligne 2) politique de la demande du serveur à l'aide de socat (en supposant que vous êtes sur un *nix système): http://github.com/kanaka/noVNC/blob/master/docs/flash_policy.txt
Mise à jour (réponse à @Josh K):
C'est un malentendu commun que le port 843 est le lieu principal de flash de la politique de demandes, et que même port demandes sont d'une chute-de retour, et qu'ils sont plus lents à cause du délai d'attente. C'est probablement basée sur le cite souvent des
http://www.lightsphere.com/dev/articles/flash_socket_policy.html et aussi parce que Adobe documentation est difficile à traquer (et de lire). Voici la documentation Adobe sur leur politique de sécurité: http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html
En réalité, le port 843 sert un peu but différent de la même réponse de port. Le Port 843 est de la méta-politique (site-politique). Il prend la priorité sur les mêmes ports politiques. L'administrateur peut utiliser pour définir flash politiques pour l'ensemble du système et de l'utiliser pour nier les utilisateurs non-privilégiés de permettre entrant flash connexions socket. C'est la raison pour laquelle il est sur le port 843 (qui est le privilège de la gamme), de sorte que seul l'administrateur système peut lancer le service sur ce port.
Les 3 secondes de délai d'attente ne s'applique que dans le cas où les connexions vers le port 843 sont ignorés en mode silencieux. Il ne s'applique pas au cas où il y a un autre service qui s'exécute sur le port 843 ou la connexion est rejetée (p. TCP reset). J'utilise les mêmes ports tout le temps et il n'y a pas de délai perceptible avec seulement l'exécution d'un même port du serveur policy server.
Avec un serveur WebSocket, un avantage supplémentaire pour le même port de la politique la réponse est que vous pouvez plus facilement coordonner la politique de l'origine de configuration entre le flash de la politique et de la WebSockets poignée de main.
Des informations intéressantes sur le flash de la politique, de +1.
Notez que Socket.IO ne permettra la politique de serveur lors de la flashsocket de transport est activé.
OriginalL'auteur kanaka
Avec un peu d'aide de la Node.js liste de diffusion, je suis venu avec les éléments suivants:
J'ai aussi écrit une (brève) tutoriel pour Les WebSockets applications à l'aide de Flash Sockets.
OriginalL'auteur Josh K
Il est préférable de remplacer les Flux d'auditeurs (de la prise d'auditeurs).
Sinon Votre serveur va s'écraser quand vous avez une erreur de ce type:
De l'échantillon de mise en œuvre pour l'empêcher :
Voir la documentation sur: http://nodejs.org/api.html ("net.Stream")
OriginalL'auteur devwafwaf