首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >节点js速递500服务器错误

节点js速递500服务器错误
EN

Stack Overflow用户
提问于 2014-01-22 10:54:06
回答 1查看 3.3K关注 0票数 0

当我试图调用通过nodejs服务器公开的方法时,我得到了500个错误,它说不支持协议版本。

如果我删除socket.io吐露,对该方法的调用是完美的.

代码语言:javascript
运行
复制
var express = require('express');

var app = express();

var http = require('http');

var server = http.createServer(app);

app.use(express.bodyParser());

app.use(express.static(__dirname + '/pollapp'));

app.get('/pollapp/PollServer.js', function (req, res) {
    res.sendfile(__dirname + '/index.htm');
});

app.get('/pollapp/PollServer.js/api/listPoll', function (req, res) {
    //....code
});

var io = require('./hostedSocket').listen(server);

io.configure(function () {
    io.set('resource', '/pollapp/PollServer.js'); //Where we'll listen for connections.
});

server.listen(process.env.PORT);

在这里调用/pollapp/PollServer.js/api/listPoll会给我500个服务器错误(协议版本不受支持)

但如果我把

代码语言:javascript
运行
复制
    io.configure(function () {
        io.set('resource', '/pollapp/PollServer.js');
    });

然后一切都好起来了。但是如果我删除了io.configure,那么套接字就不能工作了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 13:13:59

您正在尝试将socket.io资源位置与Express路由混合使用,从socket.io代码和您所得到的错误来看,这是行不通的。

发生的情况是,以/pollapp/PollServer.js开头的任何请求都将由socket.io处理,而不会传递给Express。

所以你需要把这两条路分开。也许这更好(未经测试):

代码语言:javascript
运行
复制
io.set('resource', '/pollapp/PollServer.js/socket.io');

在你的客户:

代码语言:javascript
运行
复制
<script src="/pollapp/PollServer.js/socket.io/socket.io.js"></script>

不过,我想知道为什么您不只是使用默认的/socket.io资源值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21280901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档