【问题标题】:Uncaught TypeError: Cannot call method 'onClose' of null未捕获的类型错误:无法调用 null 的方法“onClose”
【发布时间】:2013-02-24 02:18:55
【问题描述】:

我正在开发 node.js 聊天应用程序,我在 Windows 的 IIS 上托管了 node.js。 我的意图是将 node.js 包含在 Asp.net mvc 中,正如 Jon Galloway 解释的那样,用于在 asp.net Web 应用程序中执行聊天(文本、音频、视频)。

我的安装细节:
iisnode.js - iisnode-full-iis7-v0.2.3-x86
node.js - node-v0.8.19-x86
express.js 版本 - 3.1.0
socket.io 版本 - 0.9.13
在带有 IIS 8.0 express 的 windows 7 32 位系统上

我已在 IIS 上成功托管 node.js,并运行示例

但是当我开始编写 socket.io 时,我卡住了..

当我开始使用客户端浏览器连接到服务器时,客户端浏览器出现错误提示
未捕获的类型错误:无法调用 null socket.io.js:1771 的方法“onClose”

在我的服务器应用程序中,我使用 socket.io 配置作为

io.configure(function () {
    io.set('transports', [    
           'xhr-polling'
         , 'jsonp-polling'
      ]);
        io.set("polling duration", 10); 
        if (process.env.IISNODE_VERSION) {
            io.set('resource', 'node/socket.io'); 
        }
    });

这个问题是否与我正在使用的版本(express 和 socket.io node.js)或在我的代码中,关于这个问题的任何想法请帮助我。

谢谢。

【问题讨论】:

    标签: node.js iis socket.io chat


    【解决方案1】:

    我认为是因为您没有在客户端socket.io配置中设置资源路径。

    socket = io.connect('http://myurl/node/socket.io', { resource : 'node/socket.io' })
    

    【讨论】:

    • 完全正确。总体文档是针对根级服务器的。一旦你移动东西,文档就不明显了。在github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO,关于配置“资源”的注释说“这在客户端和服务器之间应该是相同的”,并指出在配置客户端时您不使用前导“/”以及在配置服务器时使用。
    • 对于其他从谷歌到达这里的人,还请查看以下问题,了解如何正确设置 io.connect() 的第一个参数 - stackoverflow.com/a/9373699/753129
    • resource 应该映射到什么?
    猜你喜欢
    • 2013-12-23
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多