【问题标题】:Socket.io runs fine locally, but not found on AzureSocket.io 在本地运行良好,但在 Azure 上找不到
【发布时间】:2014-05-27 15:52:21
【问题描述】:

我对 Node.js 还很陌生,正在尝试为自己构建一个应用程序。我正在使用 socket.io,它在测试期间在本地运行良好,但是当我部署到 Azure 时,我不断得到

http://domain/socket.io/socket.io.js 404 (Not Found)

我已经尝试了大多数可以在论坛上找到的方法和修复,但似乎没有任何效果,Azure 上启用了 Web 套接字。

我的代码如下:

客户端

<script src="/socket.io/socket.io.js"></script>

服务器端

var express = require('express');
var port = process.env.port || 1337;
var app = require('express')()
  , server = require('http').createServer(app)
  , io = require('socket.io').listen(server, { log: false });

server.listen(port);

非常感谢任何帮助,在此先感谢。

【问题讨论】:

    标签: node.js azure socket.io


    【解决方案1】:

    您是如何包含这些模块的?

    最简单的方法是创建一个 package.json 文件 (npm init),然后将其与您的 app.js 一起包含。

    http://www.windowsazure.com/en-us/documentation/articles/nodejs-use-node-modules-windows-azure-apps/

    【讨论】:

      【解决方案2】:

      要让它正常工作,请尝试配置您的 socket.io 客户端和服务器以强制 xhr-polling 传输。默认情况下,socket.io 首先尝试 websockets,它们需要为在 iisnode 下运行的 Node.js 应用程序进行一些自定义配置(例如在 Windows Azure 网站中)。

      在 Windows Azure 网站中使用 WebSocket 运行 socket.io 应用程序需要一些特殊配置:http://tomasz.janczuk.org/2013/01/hosting-socketio-websocket-apps-in-iis.html

      有关代码示例,请参阅https://github.com/tjanczuk/dante

      【讨论】:

      • 谢谢,今晚我会试一试。如果成功,将更新帖子。
      【解决方案3】:

      Windows Azure 具有三种不同的计算方法,您可以在其中部署此应用程序,您能否说明您要部署到哪一种?云服务、虚拟机或网站。

      另外,你能发布你的 web.config 文件吗?

      【讨论】:

      • 我正在部署到一个网站,只是在自学 node.js 的同时利用 Azure 的免费服务。我目前在主机上没有 web.config。假设是在找到 server.js 文件时自动创建的,但通过 FTP 登录显示没有 web.config 文件。
      【解决方案4】:

      为了使其在 azure 网站上运行,如果您在 azure 上启用了 websockets,到目前为止我发现唯一要解决的问题就是添加一个 web.config,您将在其中添加:

      <webSocket enabled="false" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-16
        • 2022-12-18
        • 2013-09-22
        • 1970-01-01
        • 1970-01-01
        • 2013-02-12
        相关资源
        最近更新 更多