2013-08-21 3 views
1

Je construis une application Windows Azur qui est principalement basée sur .NET, mais je dois aussi construire un serveur socket.io en utilisant node.js d'où j'ai besoin de déployer un serveur socket.io et d'utiliser cette socket.io url pour me connecter dans mon application .NET.Comment déployer une application socket.io node.js sur windows azure?

J'ai suivi toutes les étapes énumérées here. Et je suis en mesure d'obtenir le socket.io en cours d'exécution sur mon local, mais quand je déploie sur le cloud, il ne démarre pas. S'il vous plaît trouverez ci-dessous un extrait de code pour socket.io

var app = require('express')() 
    , server = require('http').createServer(app) 
    , io = require('socket.io').listen(server, { origins: '*:*' }); 

server.listen(4001); 

Quand je l'ai dans mon émulateur hébergé local, 127.0.0.1:81 pointait dans mon navigateur enter image description here

Mais 127.0.0.1:4001 a montré "Can not GET /" sur le navigateur, ce qui indique que le serveur socket.io s'exécute sur cette URL. Mais quand je déploie la même chose sur le cloud, je reçois la même chose que la capture d'écran sur l'URL où le service cloud est hébergé, mais sur le port 4001 où le serveur socket.io aurait dû démarrer, la page ne peut pas être affichée.

S'il vous plaît laissez-moi savoir si vous avez besoin de voir tous les autres fichiers comme web.config etc.

Je suis coincé sur cette question de toujours et il est vraiment essentiel pour mon projet, des suggestions ou des idées seraient profondément apprécié.

Merci

+0

Avez-vous suivi toutes les étapes ici Le 1337 ne serait utilisé: http://www.windowsazure.com/en -us/develop/nodejs/tutorials/app-using-socketio/ – WiredPrairie

+0

J'ai suivi les étapes du lien que vous avez fourni et j'ai essayé de déployer la même application de chat que le tutoriel mentionné et j'obtiens toujours l'erreur qui est affichée dans la capture d'écran jointe au dessus. Cela fonctionne parfaitement sur mon émulateur local. Cela peut-il être un problème avec la version de node.js? Mon local a 8.21 et j'ai vu dans le fichier de configuration de ServiceConfiguration qu'azure essayait d'installer 6.20 sur le service cloud. Une idée? – Bitsian

Répondre

0

La partie importante que vous manque de l'échantillon est réglage du numéro de port

var port = process.env.port || 1337; 

et .listen (port)

lorsque vous utilisez à l'intérieur du Environnement Azure (même émulé) les ports sont assignés pour vous, la variable d'environnement de port vous dira où. 4001 n'est probablement pas le port attribué.

si vous exécutez en exécutant

node server.js 

de la ligne de commande

+0

J'ai essayé cela aussi, mais je n'ai pas pu me connecter à un serveur socket.io sur l'URL normale sans donner de numéro de port. Je suppose que je n'ai pas besoin de mentionner un numéro de port lors de la connexion si je définis le numéro de port comme vous l'avez mentionné? – Bitsian

Questions connexes