2013-08-21 2 views
1

Я создаю приложение azure для Windows, которое в основном основано на .NET, но мне также нужно построить сервер socket.io, используя node.js, поэтому мне нужно развернуть сервер socket.io и использовать этот ключ socket.io для подключения в моем приложении .NET.Как развернуть приложение socket.io node.js на windows azure?

Я выполнил следующие шаги: here. И я могу получить socket.io работает на моем локальном, но когда я развертываю в облаке, он не запускается. Ниже Вы найдете фрагмент кода для Socket.io

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

server.listen(4001); 

Когда я принимал его в своем локальном эмуляторе, 127.0.0.1:81 указывал на это в моем браузере enter image description here

Но 127.0.0.1:4001 в браузере показывали «Can not GET /», что свидетельствует о том, что сервер socket.io работает на этом URL-адресе.

Но когда я развертываю то же самое в облаке, я получаю то же самое, что и скриншот на URL-адресе, где размещается облачный сервис, но на порту 4001, где сервер socket.io должен был запустить его, говорит, что страница не может быть отображена.

Пожалуйста, дайте мне знать, если вам нужно, чтобы увидеть какие-либо другие файлы, такие как web.config и т.д.

Я застрял в этом вопросе от навсегда, и его действительно важно для моего проекта, любые предложения или идеи были бы глубоко оценили.

Благодаря

+0

ли вы следовать все шаги здесь: http://www.windowsazure.com/en -us/develop/nodejs/tutorials/app-using-socketio/ – WiredPrairie

+0

Я выполнил шаги в приведенной ссылке и попробовал развернуть те же приложения для чата, о которых упоминалось в учебнике, и я все еще получаю сообщение об ошибке, которое отображается на скриншоте, прилагаемом выше. Он отлично работает на моем локальном эмуляторе. Это может быть проблема с версией node.js? Мой локальный имеет 8.21, и я видел в файле настроек ServiceConfiguration, который azure пытался установить 6.20 на облачную службу. Есть идеи? – Bitsian

ответ

0

Важной частью, что вам не хватает из образца установки номера порта

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

и .listen (порт)

, когда вы работаете внутри из Лазерная среда (даже эмулированная) для вас назначается портам, переменная окружения порта сообщит вам где. 4001, скорее всего, не назначенный порт.

1337 будет использоваться только если вы работаете, выполнив

node server.js 

из командной строки

+0

Я тоже это пробовал, но я не смог подключиться к любому серверу socket.io на обычном URL-адресе, не указывая номера портов. Я предполагаю, что мне не нужно упоминать номер порта при подключении, если я установил номер порта, как вы упомянули? – Bitsian

Смежные вопросы